
Высокопроизводительный фаззер (fuzzer) для веб-приложений с черным ящиком, со встроенным механизмом полезной нагрузки (payload engine), проверкой запросов, модификацией, кодированием и продвинутой фильтрацией для обнаружения скрытых поведений и уязвимостей.
</ Преимущества | Возможности | Установка | Использование | Сообщество >
Firefly — это продвинутый фаззер методом черного ящика, а не просто стандартный инструмент для обнаружения активов. Firefly предоставляет преимущество тестирования цели с большим количеством встроенных проверок для выявления поведения целевой системы.
go install -v github.com/Brum3ns/firefly/cmd/firefly@latest
или
go get -v github.com/Brum3ns/firefly/cmd/firefly
firefly -h
firefly -u 'http://example.com/?query=FUZZ'
Различные типы ввода запросов, которые можно использовать
Базовый
firefly -u 'http://example.com/?query=FUZZ' --timeout 7000
Запрос с разными методами и протоколами
firefly -u 'http://example.com/?query=FUZZ' -m GET,POST,PUT -p https,http,ws
echo 'http://example.com/?query=FUZZ' | firefly
firefly -r '
GET /?query=FUZZ HTTP/1.1
Host: example.com
User-Agent: FireFly'
Это отправит сырой HTTP запрос и автоматически обнаружит все параметры GET и/или POST для фаззинга.
firefly -r '
POST /?A=1 HTTP/1.1
Host: example.com
User-Agent: Firefly
X-Host: FUZZ
B=2&C=3' -au replace
Проверка запросов — самая важная часть. Эта функция позволяет Firefly понять основное поведение цели при фаззинге. Важно придерживаться качества, а не количества. Больше проверочных запросов приведет к лучшему качеству за счет производительности внутреннего оборудования (в зависимости от вашего оборудования).
firefly -u 'http://example.com/?query=FUZZ' -e
Полезные нагрузки могут быть сильно настроены, и с хорошим базовым wordlist можно полностью адаптировать wordlist полезных нагрузок внутри самого Firefly.
Отобразить формат всех полезных нагрузок и выйти
firefly -show-payload
Список всех доступных модификаторов
firefly -list-tamper
Применить модификатор ко всем полезным нагрузкам с указанным типом (можно использовать несколько, разделяя запятыми)
firefly -u 'http://example.com/?query=FUZZ' -e s2c
firefly -u 'http://example.com/?query=FUZZ' -e hex
Сначала шестнадцатеричное, затем URL-кодирование всех полезных нагрузок
firefly -u 'http://example.com/?query=FUZZ' -e hex,url
firefly -u 'http://example.com/?query=FUZZ' -pr '\([0-9]+=[0-9]+\) => (13=(37-24))'
Полезные нагрузки:
' or (1=1)-- -и" or(20=20)or "Приведут к:' or (13=(37-24))-- -и" or(13=(37-24))or "Где=>(с пробелами) обозначает "заменить на".
Опции фильтрации для отбора/сопоставления запросов, содержащих заданное правило.
Фильтровать ответы, игнорируя (отфильтровывая) код состояния 302 и количество строк 0
firefly -u 'http://example.com/?query=FUZZ' -fc 302 -fl 0
Фильтровать ответы, включая (сопоставляя) регулярное выражение и код состояния 200
firefly -u 'http://example.com/?query=FUZZ' -mr '[Ee]rror (at|on) line \d' -mc 200
firefly -u 'http://example.com/?query=FUZZ' -mr 'MySQL' -mc 200
Производительность и временные задержки для использования в процессе запроса
Потоки / Конкурентность
firefly -u 'http://example.com/?query=FUZZ' -t 35
Задержка времени в миллисекундах (мс) для каждого конкурентного запроса
FireFly -u 'http://example.com/?query=FUZZ' -t 35 -dl 2000
Wordlist, содержащий полезные нагрузки, может быть добавлен отдельно или извлечен из указанной папки
Один wordlist с типом атаки
firefly -u 'http://example.com/?query=FUZZ' -w wordlist.txt:fuzz
Извлечь все wordlist'ы из папки. Тип атаки зависит от суффикса <type>_wordlist.txt
firefly -u 'http://example.com/?query=FUZZ' -w wl/
Пример
Имена wordlist'ов в папке
wl:
- fuzz_wordlist.txt
- time_wordlist.txt
Настоятельно рекомендуется использовать вывод в формате JSON. Это связано с тем, что можно воспользоваться инструментом
jqдля навигации по результатам и их сравнения.
(Если Firefly используется в конвейере с другими инструментами, стандартный обычный текст может быть лучшим выбором.)
Простой формат вывода в виде обычного текста
firefly -u 'http://example.com/?query=FUZZ' -o file.txt
Формат вывода JSON (рекомендуется)
firefly -u 'http://example.com/?query=FUZZ' -oJ file.json
Все участники сообщества могут предлагать новые функции, улучшения и/или добавлять новые полезные нагрузки в Firefly, просто создав pull request или оставив комментарий со своими предложениями!