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