Всем привет!
После того, как я написал статью Автоматизация эксплуатации слепой инъекции при помощи Burp Suite я получил целых 4 положительных отзыва, поблагодарил этих людей за высокую оценку моего труда. Я провозился со статьей около 3-х дней и мне было очень приятно, что данное творение хоть кому-то пригодилось. С тех пор утекло много воды, я закончил курс WAPT, но пока решил не оставлять эту сферу деятельности, потому что она мне нравится, хоть я и полный чайник.
Недавно один человек мне задал вопрос: «А зачем нужен Burp Suite, если как фаззер он слабоват и тормознут и есть много других хороших инструментов, например, таких как wfuzz?» Я ответил, что если он сможет раскрутить при помощи того же wfuzz’а слепую sql-инъекцию, то это будет хороший материал для статьи. Потом я сам что-то заморочился этим вопросом и подумал: «А это вообще возможно»? И этот вопрос сподвиг меня на очередной творческий подвиг. Наверняка на нашем форуме найдется еще хотя бы 5 человек, кто скажет: «Вот он гений, не зря потратил еще 3 дня, разбирая тонкости wfuzz, но смог-таки превзойти sqlmap». На самом деле, sqlmap сложно превзойти, это достойный инструмент. У него не так много минусов, но один из них – его нельзя использовать при прохождении курса WAPT, где надо работать только ручками или использовать самописные программы на каком-нибудь языке. А если человек не умеет это делать, то ему либо не место в этой сфере, либо надо как-то изгаляться, чтобы о нем так не думали. Это статья прежде всего для них, и я все же надеюсь получить свой пяток положительных отзывов. Вариант с Burp Suite не плох, но если у вас не PRO версия, то раскрутка слепой инъекции может занять очень продолжительное время. Фаззер практически лишен этого недостатка, поэтому на извлечение одного значения уйдет меньше минуты.
Так как задача, которую я использовал в качестве примера взята из курса WAPT, то я буду по-максимуму замазывать содержимое и изменять полученные значения, чтобы со мной не произошло то, что я описал в первой статье, и чтобы до конца не облегчать жизнь ученикам на курсе, потому что им не должно быть легко, иначе жить станет неинтересно.
Итак, начнем.
1. Имеется сайт, где мы совершенно случайно нашли слепую SQL-инъекцию. Приложение своим ответом по-разному реагирует на истинное (1=1) и ложное (1=2) условия (Рис. 1, 2).
Рис. 1
Рис. 2
2. Здесь мы можем использовать Intruder и размотать эту инъекцию, как в предыдущей статье. Но мы же хотим использовать для этого wfuzz, поэтому запускаем его и формируем следующую команду, чтобы узнать название текущей базы данных (Рис. 3).
Рис. 3
где первый диапазон (range) – количество букв в названии (мы можем проверить сколько символов содержится в названии базы данных, как мы делали это в первой статье, но не будем повторятся, если вам интересно, то сделайте это сами), поставим, например, 10, второй диапазон – ascii-коды символов (буквы строчные, прописные и спецсимволы).
3. И получаем такую картинку (Рис. 4):
Рис. 4
4. Очевидно, что реальный символ отличается в выводе команды от остальных, поэтому остальные отфильтровываем (Рис. 5).
Рис. 5
5. На выходе получаем (Рис. 6):
Рис. 6
6. Открываем сайт:
Ссылка скрыта от гостей
и вводим полученные значения в окно для декодирования: Вуа-Ля, получаем название текущей БД (Рис. 7).
Рис. 7
Для получения названий таблиц в команду вставляем следующий запрос:
order=admin' or ascii(substring((select table_name from information_schema.tables where table_schema=database() limit 0,1), FUZZ, 1))=FUZ2Z--+
Для получения названия колонок:
order=admin' or ascii(substring((select column_name from information_schema.columns where table_name='НАЗВАНИЕ ТАБЛИЦЫ' limit 0,1), FUZZ, 1))=FUZ2Z--+
Для дампа содержимого:
order=admin' or ascii(substring((select ПОЛЕ from НАЗВАНИЕ ТАБЛИЦЫ limit 0,1), FUZZ, 1))=FUZ2Z--+
Не забываем при необходимости менять первый диапазон (для изменения количества символов в названии) и значение limit $,1 ($ - для получения других значений таблиц, столбцов и содержимого полей).
Скажу сразу, работает автоматизация эксплуатации слепой инъекции в wfuzz значительно быстрее, чем Burp Suite Pro. Кстати, если немного видоизменить команду, то можно будет проэксплуатировать слепую Time-based инъекцию.
На этом все. Спасибо за внимание!
Последнее редактирование модератором: