Skip to main content

Фаззинг

Fuff

FFUF легко адаптируется к внешнему инструментарию. Подставляет наборы из словарей в соответствующие точки адреса и анализирует ответ. 

ffuf -u http://test.ru/FUZZ/ -w dict.txt

Здесь вместо FUZZ будет подставлено каждое значение из dict.txt. По умолчанию GET, затем анализ статуса ответа

Мультисловарь

ffuf -u https://ignitetechnologies.in/W2/W1/ -w dict.txt:W1 -w dns_dict.txt:W2

Общие параметры

-ic -s скрывает из вывода баннер fuff и дополнительную информацию, оставляя только найденные пути
-e .php определяет расширение файла, которое мы ищем.
-b "" Установка cookie
-p 1 Задержка 1 секунда перед отправкой следующего запроса
-rate 500 Максимальное количество запросов в секунду
-t 1000 Количество потоков. По умолчанию 40.
-o fname -of format

Выходной файл и формат результата

-of html

-of csv

Параметры соответствия / фильтрации

-mc / -fc Какие статусы отображать. например -mc 200 / Какие статусы фильтровать
-ml / -fl Соответствие / исключение количеству строк в ответе
-mw / -fw Соответствие / исключение количеству слов в ответе
-ms / -fs Соответствие / исключение размера ответа
-mr / -fr Соответствие / исключение в ответе регулярному выражению

Можно настроить proxy

Атака clusterbomb - подстановка логинов и паролей из словаря в соответствующие поля запроса для подбора. Идея в том, что в параметре request указывается текст запроса. При помощи burp копируем текст запроса, в нашем случае в brute.txt заменяя значения на переменные

image.png

 Затем задаем тип атаки -mode и словари для переменных.

ffuf -request brute.txt -request-proto http -mode clusterbomb -w users.txt:HFUZZ -w pass.txt:WFUZZ -mc 200

Типы атак:

clusterbombПолный перебор. Берет все элементы из первого набора и комбинирует со всеми элементами из второго, третьего и т.д. Идеален для перебора логина и пароля.
pitchforkПопарное сопоставление. Берет первый элемент из первого набора, первый из второго и т.д., затем второй из первого, второй из второго. Используется для согласованных данных.
sniperСнайпер (режим по умолчанию). Использует один набор полезных нагрузок для атаки на одну или несколько позиций по очереди.
batteringramТаран. Использует один набор полезных нагрузок и подставляет одно и то же значение во все позиции одновременно в одном запросе.
null"Холостой" режим. Отправляет запрос только один раз, без замены в позициях. Полезные нагрузки не используются. Получить "чистый" ответ от сервера без каких-либо атакующих payloads, чтобы использовать его как базовый для фильтрации.
multinullМногократный "холостой" режим. Отправляет один и тот же базовый запрос несколько раз. Стабильность ответа: Проверить, возвращает ли сервер всегда один и тот же ответ на идентичный запрос. Помогает отсеять случайные отклонения.
singleОдиночная замена. Использует один набор полезных нагрузок, но подставляет каждую нагрузку только в первую позицию FUZZ. Последующие позиции FUZZ в запросе игнорируются. Упрощенный вариант Sniper, когда у вас в запросе случайно оказалось несколько слов FUZZ, но вы хотите фаззить только первую позицию.
iteratorНужен файл смарт-загрузки (JSON) Позволяет создать цепочку из других режимов атаки. Например, сначала выполнить clusterbomb для двух наборов, а затем результат передать в sniper для третьего. Очень гибкий, но и сложный в настройке.
trampolineНужен файл смарт-загрузки (JSON) Позволяет использовать результат одного запроса (например, извлечь токен из ответа) в качестве полезной нагрузки для следующего запроса. Идеален для обхода защиты, требующей выполнения предыдущего шага (например, получения CSRF-токена перед отправкой формы).

Т е fuff повторяет типы Burb, добавляя свои варианты. Iterator и trampoline являются аналогами скриптов в Burp. Возможно настройка менее удобная.

 

Список словарей:

  •  https://github.com/empty-jack/YAWR раздел web-files and directories-fuzz.txt
  • SecLists (GitHub) — самый большой и универсальный набор: директории, файлы, пароли, URL, поддомены и т.п. git clone https://github.com/danielmiessler/SecLists.git.

  • Assetnote — Wordlists wordlists.assetnote.io — наборы, регулярно обновляемые для content-/subdomain-discovery. Есть web-interface и репозиторий.

  • commonspeak2-wordlists (Assetnote / GitHub) — wordlists, сгенерированные из больших публичных датасетов (подходит для content discovery и поддоменов). git clone https://github.com/assetnote/commonspeak2-wordlists.

  • FuzzDB (GitHub / проект) — словари атак, шаблоны и предсказуемые пути — полезно для более «потенциально опасных» и специальных путей.

  • PayloadsAllTheThings (GitHub / сайт) — коллекция полезных payload’ов и bypass-паттернов (не просто имена файлов, а полезные полези для инъекций и тестов).

  • DirBuster wordlists (архив/репозитории) — классические wordlists, используемые DirBuster / Dirsearch (хороши для brute-директорий). Есть архивы и отдельные репозитории с наборами.

  • Kali / пакеты wordlists & seclists — Kali поставляет готовые пакеты (seclists, wordlists с rockyou и т.д.), удобно ставить прямо через apt на тестовой машине.

  • rockyou.txt (популярный парольный словарь) — классика для перебора паролей; часто нужен при тестах аутентификации. Доступен в архивах wordlists (Kali) и на mirror-сайтах. weakpass.com

  • Assetnote commonspeak / blog & наборы рекомендаций по поддоменам — гайды и готовые наборы поддоменов (полезно сочетать с автоматикой обновления).

  • Доп. коллекции и агрегаторы (Payloads-and-wordlists, другие GitHub-репы) — небольшие коллекции и специализированные листы (например, payload-наборы для Burp / Intruder). Полезны для конкретных задач.