Всем привет! Недавно впервые взломала один сайт при помощи SQL инъекции, получила логины и хэши, всё круто. Но! На том сайте не был отключен вывод ошибок, примерно так: http://www.imagebam.com/image/d93173206203365 Вопрос: как быть, если на странице отсуствует вывод ошибок? Как получать ответы от бд через инъекцию? через тот же select... Заранее благодарю и простите за тупые вопросы. Перерыла инет, но нигде конкретно не говорится, как быть.
О, спасибо! А как в blind инъекциях получать ответы? Вот, к примеру, знаю от одного человека, что сайт уязвим (он с помощью инъекции получил всех юзеров-хэши), но как же без вывода? Сорри, вопросы и правда тупые, но я так давно уже хотела начать этим заниматься, да вот и щас первый сайт поддался, а тут...тупик=\
да, слепая инъекция - более частая разновидность инъеции. Её труднее заметить админу/кодеру, потому этот тип более популярен. Для эксплуатации таких инъекций нужно писать скрипты (они совсем простые) или использовать готовые инструменты (sqlmap, например) - автоматизировать процесс, т.к. запросов к серверу будет на порядок больше, чем при обычной инъекции. Какой бы способ не выбран (самопис/готовые), нужно понимать основной принцип проведения инъекции: сервер отвечает только "ДА" (показывая страницу 1) или "НЕТ" (показывая страницу 2). Т.е. на запрос "Первый символ номера версии СУБД равен 5?" сервер ответит одной страницей (если "ДА") или другой (если "НЕТ"). Таким образом, посимвольно, из базы вытягиваются все необходимые данные
Спасибо за ответы. Вот сейчас использую sqlmap, возникло два вопроса: 1) Хотела сделать дамп бд, которую вручную взломала, но ответ был, что нет injectible param's Странно, почему так? Ведь в браузере достаточно инфу было получить при помощи: Code: +or+(SeLect+count(*)+from+(select+1+UnIoN+select+2+UnIoN+select+3)x++group+by+concat(version(),floor(rand(0)*2)))%23 2) Нашла уязвимый сайт, SQL версии 4.0 какие лучшие способа подбора имен таблиц и колонок в sqlmap?
Какие параметры запуска использовались для запуска sqlmap? От этого много чего может зависеть. Например, если известна какая СУБД используется, то лучше указать(--dbms=mysql). Если параметров много, то указать уязвимый через -p (н-р, -p id). Так же если известна имя базы, таблицы тоже указать:Если собрать все в кучу: sqlmap.py -u "http://www.site.com/?page=goods&id=4" -p id --dbms=mysql -D db_name -T table_name --dump Для перебора таблиц\колонок по словарю есть опции --common-tables и --common-columns
Для сайта, который я взломала вручную в браузере использовала след. параметры запуска sqlmap для дампа данных: sqlmap -u "http://site.com/search.php?search_category_id=79" -p search_category_id -D db_name -T table_name --dump Результат: search_category_id not injectible Неужели придется искать другой способ дампа данных? К слову сказать "вручную" данные получаю следующим url: Code: http://site.com/search.php?search_category_id=79'+or+(SeLect+count(*)+from+(select+1+UnIoN+select+2+UnIoN+select+3)x++group+by+concat(mid((SELECT+password+FROM+userdata+limit+120,1),1,64),floor(rand(0)*2)))%23 Теперь по поводу базы данных версии sql4, которую я сейчас пытаюсь взломать с помощью sqlmap: За это спасибо, common-tables помогли вытащить имена таблиц, а вот от common-columns толку ноль,хотя пробовала на больших словарях Правда, удалось еще вытащить username/password hash root'a.
В первом случае указывали как я советовал тип базы данных?(--dbms=mysql) Во втором случае, если подобрались хоть какие то колонки, то по ним можно узнать префикс, если он используется. Например, нашелся столбец qw_users, надо прогнать по словарям с этим префиксом, в sqlmap есть такая команда, сейчас не могу посмотреть, можете почитать help: sqlmap -h или sqlmap -hh. Кстати, какой версией sqlmap пользуетесь? ЛУчше брать из git репозитория самую последную.
Да, в первом случае указывала --dmbs=mysql К сожалению, колонок не подобралось вообще... Можно вам подробнее в личку написать с конкретным url'ом сайта? Просто, если для вас это будет внапряг, я не буду беспокоить, итак советами помогаете - за что огромное спасибо