
Отпечатки wafw00f. Скорость Go. Нативная поддержка конвейеров. Обнаружение WAF по живым HTTP-запросам и офлайн-захватам.
Отпечатки wafw00f. Скорость Go. Нативная поддержка пайплайнов.
172 идентификатора WAF-продуктов, построенных на отпечатках wafw00f.
CLI и библиотека на Go для анализа живого HTTP и офлайн-анализа сохранённых ответов.
Быстрый старт · Переход с wafw00f · Бенчмарки · Документация
Открыть полноразмерную демонстрацию
wafmeow — это альтернатива wafw00f для обнаружения WAF на Go, построенная на работе по отпечаткам вышестоящего проекта. Она привносит быстрое фингерпринтинг WAF в конкурентные, структурированные пайплайны для команд, которым нужно обнаруживать WAF в масштабе.
jq, инструменты уведомлений или базу данных
с сохранением человекочитаемой диагностики в stderr.# Set AUTHORIZED_DOMAIN to a domain you own or are authorized to test.
set -o pipefail
subfinder -d "${AUTHORIZED_DOMAIN:?set an authorized domain}" -silent |
httpx -silent |
wafmeow --target-file - --fast --jsonl --silent
Этот конвейер использует --fast для быстрого активного сканирования каждого обнаруженного URL.
Для существующих экспортов ответов httpx используйте
конвейер офлайн-импорта.
Собирайте с помощью Go 1.26 или новее, используя инструментарий с исправлениями безопасности. В релизных сборках используется Go 1.27.3.
git clone https://github.com/Lu1sDV/wafmeow.git
cd wafmeow
go build -o wafmeow ./cmd/wafmeow
./wafmeow --help
Для продакшена используйте релиз, прошедший проверки валидации релиза. Загрузки v1.0.0 предшествуют усилению безопасности в этом дереве исходного кода.
Готовые бинарные файлы, модуль Go и установка через Homebrew описаны в разделе Релизы и установка:
go install github.com/Lu1sDV/wafmeow/v3/cmd/wafmeow@latest
brew install Lu1sDV/tap/wafmeow
Команда установки Go /v3 требует опубликованного релиза v3. До этого
релиза собирайте из исходного checkout выше; Homebrew продолжает устанавливать
последнюю опубликованную стабильную версию.
# Use your own local HTTP server on port 8080.
./wafmeow --target http://127.0.0.1:8080 --fast
Выводит результат в удобочитаемом виде. Используйте --target / -t для URL и повторяйте
его для нескольких URL. Используйте --target-file PATH для файла со строками URL или
--target-file - для stdin.
--input PATH и -I PATH остаются эквивалентными вариантами написания --target-file PATH.
Выберите один источник ввода; сохранённые ответы используются с --evidence для офлайн-анализа.
| Цель | Выбрать | Коллекция |
|---|---|---|
| Быстрое активное фингерпринтинг | --fast | Обычная, без user-agent и комбинированная проба |
| Более широкое активное зондирование | --deep | Восемь выбранных типов запросов; также режим по умолчанию, если режим не указан |
| Проверка только обычных ответов | --baseline | Один обычный запрос, без активных проб |
| Повторное использование сохранённых ответов | --evidence FILE | Офлайн-классификация, без новых запросов |
--baseline может находить отпечатки, уже присутствующие в обычном ответе. Используйте
его, когда нужна обычная HTTP-инспекция без активных проб; это не подготовительный
шаг для --fast или --deep. Три живых режима взаимоисключающие, а редиректы и бюджеты влияют на фактическое число запросов. См.
режимы коллекции и полезные нагрузки для компромиссов.
# Discover URLs, then send new wafmeow requests:
httpx -l authorized-hosts.txt -silent |
./wafmeow --target-file - --fast --jsonl --silent