Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Админка, sql-inj
 
Попалась админка вида admin.php. Скрипт самописный, простенький. Просит ввести логин, пароль. Вводим '.
Код
Error in query: select user_id, user_status from users where user_login='\\'' and user_pass='d41d8cd98f00b204e9800998ecf8427e' and user_status=2
Mysql error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'd41d8cd98f00b204e9800998ecf8427e' and user_status=2' at line 1
Mysql info: 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/httpd/hosted/site/public_html/lib/class.MysqlDb.php on line 94

Загрузилась страничка с уже заполненным полем.


Интересно. А вводили мы только кавычку. Генерируем md5 хэш от "" - получается d41d8cd98f00b204e9800998ecf8427e.
Хм. Теперь вводим в поле логин: "слэш_кавычка" и пароль: "слэш_кавычка".
Код
Error in query: select user_id, user_status from users where user_login='\\\\'' and user_pass='1a78e83e7ed292baefad73f6de9e6728' and user_status=2
Mysql error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1a78e83e7ed292baefad73f6de9e6728' and user_status=2' at line 1
Mysql info: 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/httpd/hosted/site/public_html/lib/class.MysqlDb.php on line 94


Генерируем md5 хэш от \\\' - 1a78e83e7ed292baefad73f6de9e6728.
Мда..
Побаловался с разными значениями, но в итоге так и не пробился.
Что тут можно вообще сделать?
 
Этот же сайт. Инъекция в index.php?Id='
Код
Error in query: select count(*) from users where user_id='\\''
Mysql error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''\\''' at line 1
Mysql info: 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/httpd/hosted/site/public_html/lib/class.MysqlDb.php on line 36

Пробую типичные -1+union+select+1,2/*
Выводится страничка без ошибок, но и без циферок. Перебрал от 1 до 10.
Ладно, делаю через order by. Тоже самое.
В sql-inj не силен, поэтом полез за инфой на injection.rulezz.ru. Пробовал по-разному, увы, не получается даже подобрать кол-во столбцов.
Где-то ошибаюсь значит..
 
Кажется нужно кавычку экранировать..
 
Ппробуй ченить типа:
Код
blablablabla'+union+select+1,2,3,4,5,6,7,8,9/*
 
SuperNova,
Попробуй в поле "логин" написать
Код
\\' or 1=1 /*
 
Заметил одну веселую вещь.
Обращаюсь к site.com/?id=bla'
Захожу на site.com/enter.html.
На странице появляется надпись: bla\\\'

Можно сделать дурацкий дефейс :)
 
Зачем столько хлопот? Он же пишет:  select user_id, user_status from users where user_login='\'' and user_pass='d41d8cd98f00b204e9800998ecf8427e' and user_status=2. Т.е. если сделать так  select user_id, user_status from users where user_login='Админ' -- \'' and user_pass='d41d8cd98f00b204e9800998ecf8427e' and user_status=2 то ни каких хешей подбирать не надо.
 
Упал с табуретки.
Параметр передается в запрос в кавычках. Кавычки экранируются на сервере. Если инъекция и есть то не через поля ввода логина и пасса.
Ищите на сайте скрипты к которым передаются числовые значения(возможно их не обрамляли кавычками).
 
НИ чего на этом сервере не экранируется, в error-е всё черным по электронному :)
 
Mysql error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1a78e83e7ed292baefad73f6de9e6728' and user_status=2' at line 1

Тут ругается не на закрытую кавычку.
 
Админки уже нету, но все равно интересно было узнать правильный ход мыслей. Или нет?
 
Не знаю насколько он правильный, но всё-же. Начнём с того что ты менял значения в поле login, а смотрел на хеш пароля - это неверно ;). Ну а по существу, этот сервер пропускает в запрос всё подряд (ты ввёл \' и это появилось в where user_login='\'). Селект построен следующим образом select user_id, user_status from users where user_login='Имя пользователя' and user_pass='хеш пароля' and user_status=2 , от сюда видно, что если отрубить ему хвост следующим образом select user_id, user_status from users where user_login='Имя пользователя' -- ... , то он просто игнорирует любой пароль (но попадёт в зону комментария) и пропустит с правами того пользователя который указан в "Имя пользователя". Вывод - если-бы автор этого скрипта поменял в селекте имя и пароль местами, фокус бы не прошёл :)
 
Во первых в мускуле последовательность  -- не является комментарием.
Во вторых SuperNova подставил не \' а одну одинарную кавычку ', слэш появился в результате экранирования.
Страницы: 1
Читают тему