ffuf — это инструмент для фуззинга веб-приложений, который поддерживает гибкие параметры для настройки запросов, фильтрации и вывода.
Основные ключи:
-w — используется для указания файла со списком слов для подстановки в запросы
-H "Name: Value" — Установка HTTP-заголовка.
-X POST — используется для указания метода запроса (POST).
-d — для передачи данных в теле запроса (используется с методом POST).
-u — для указания URL, где подстановка будет происходить.
-e — для указания расширений файлов для подстановки.
-fs — для фильтрации по размеру ответа.
Пример команды:
#Поиск вложных директорий сайта
ffuf -w directory-list-2.3-small.txt -u https://example.org/FUZZ
#Поиск файлов по расширению
ffuf -w directory-list-2.3-small.txt -u https://example.org/FUZZ -e .php,.txt
Перебор субдоменов
Github с различными словарями https://github.com/danielmiessler/SecLists
ffuf -w bitquark-subdomains-top100000.txt -u https://example.org -H 'Host: FUZZ.example.org'
При первом запуске получаем большой вывод который нежно отфильтровать:
-fs (filter size) : Фильтрует ответы по размеру тела ответа в байтах. Например, -fs 1234 исключит все ответы размером 1234 байта.
-fc (filter status code) : Исключает ответы с определенными HTTP-кодами состояния. Например, -fc 403 отфильтрует все ответы с кодом 403 (Запрещено).
-fw (filter words) : Фильтрует ответы по количеству слов в теле ответа. Например, -fw 200 исключит все ответы, содержащие 200 слов.
-fl (filter lines) : Исключает ответы с определенным количеством строк. Например, -fl 50 отфильтрует все ответы, содержащие 50 строк.
-fr (filter regex) : Фильтрует ответы, содержимое которых соответствует заданному регулярному выражению. Например, -fr "Error:.*" исключит все ответы, содержащие строки, начинающиеся с “Error:”.
В зависимости от ответов сайта подбираем подходящий фильтр и запускаем повторный скан.
ffuf -w bitquark-subdomains-top100000.txt -u https://example.org -H 'Host: FUZZ.example.org' -fc 302