• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Статья Автоматизация эксплуатации слепой boolean-based SQL-инъекции при помощи WFUZZ

1_zB5JlbMSA26pklzNRAmSEg.png


Всем привет!

После того, как я написал статью Автоматизация эксплуатации слепой инъекции при помощи 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).

1655188065058.png

Рис. 1

1655188096313.png

Рис. 2

2. Здесь мы можем использовать Intruder и размотать эту инъекцию, как в предыдущей статье. Но мы же хотим использовать для этого wfuzz, поэтому запускаем его и формируем следующую команду, чтобы узнать название текущей базы данных (Рис. 3).

1655188354008.png


Рис. 3

где первый диапазон (range) – количество букв в названии (мы можем проверить сколько символов содержится в названии базы данных, как мы делали это в первой статье, но не будем повторятся, если вам интересно, то сделайте это сами), поставим, например, 10, второй диапазон – ascii-коды символов (буквы строчные, прописные и спецсимволы).

3. И получаем такую картинку (Рис. 4):

1655188425567.png


Рис. 4

4. Очевидно, что реальный символ отличается в выводе команды от остальных, поэтому остальные отфильтровываем (Рис. 5).

1655188495850.png


Рис. 5

5. На выходе получаем (Рис. 6):

1655188564194.png




















Рис. 6
6. Открываем сайт: и вводим полученные значения в окно для декодирования: Вуа-Ля, получаем название текущей БД (Рис. 7).

1655189203154.png

Рис. 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 инъекцию.

На этом все. Спасибо за внимание!

 
Последнее редактирование модератором:
02.03.2021
543
398
BIT
177
Спасибо отличная статья, давай что нибудь еще автоматизируй. Wapt будет всегда, а путей прохождения его будут разные

p.s. лишний раз показал что wfuzz можно использовать насколько хватит ловкости рук
 
  • Нравится
Реакции: BAO, Mogen и Strife

p00h

One Level
23.01.2020
9
5
BIT
0
Спасибо за статью!) как раз кстати придется!
 

BAO

Red Team
11.09.2019
69
56
BIT
24
Paladin как обычно красавчик!! Поздравляю с повышением! После WAPT, я уже забыл что такое крутить скули руками)) Думаю можно будет взять за основу твой опыт с wfuzz и дополнить его bash скриптом, чтобы не и**ться с декодированием через браузер. Скоро мне это пригодится))
 

Jice

New member
22.04.2020
2
0
BIT
8
Отличный способ, особенно когда нет возможности использовать sqlmap. Автор сохранил мое ментальное здоровье, за что я ему очень благодарен!

P.S. Как и было сказано в статье, не забывайте про количество символов в первом диапазоне, вдруг так получится что их окажется больше 10, хотя казалось бы извлеченное значение прекрасно подходит по смыслу)
 

User_1998

One Level
09.05.2020
2
1
BIT
15
Огромная благодарность Паладину за эту статью,прохожу особо заумный курс ,SQLMap не потянул Boolean Blind SQL , руками пытался , запутался на хрен , а с помощь этой статьи - все получилось,флаг взят,несмотря на то что СММ-щики постарались очень хорошо и в их лабах без 3 литров односолодового вискаря можно утонуть.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!