
Автоматизированный инструмент оценки WAF, который определяет производителей брандмауэров, тестирует 19 категорий атак с использованием продвинутых обходных полезных нагрузок и предоставляет цветовой анализ обхода через CLI, Cloudflare Worker или Docker.
Этот проект помогает проверить, насколько хорошо ваш Web Application Firewall (WAF) защищает ваш продукт от распространённых веб-атак. Он может работать как Cloudflare Worker (со встроенным интерактивным веб-интерфейсом) или как отдельный CLI-инструмент на Node.js.
SQL-инъекции, XSS, Path Traversal, Command Injection, SSRF, NoSQL-инъекции, Local File Inclusion, LDAP-инъекции, HTTP Request Smuggling, Open Redirect, Sensitive Files, CRLF-инъекции, UTF8/Unicode-обход, XXE, SSTI, HTTP Parameter Pollution, Web Cache Poisoning, IP Bypass, User-Agent.
X-HTTP-Method-Override и др.).Проект организован как монорепозиторий на основе NPM Workspaces:
packages/core/: Основная библиотека для тестирования безопасности, определение полезных нагрузок, сигнатуры для определения WAF и кодировщики для обфускации.packages/worker/: Пакет Cloudflare Worker, обслуживающий статический веб-интерфейс HTML/JS и конечные точки JSON API.packages/cli/: Инструмент командной строки на Node.js для выполнения аудитов прямо из терминала.Из корневого каталога выполните установку зависимостей и сборку всех рабочих областей:
npm install
npm run build
Для локального запуска сервера разработки Worker (требуется Wrangler):
npm run dev:worker
Веб-интерфейс будет доступен по адресу http://localhost:8787 (или на другом порту, если 8787 занят).
Для развёртывания Worker на Cloudflare:
npx wrangler deploy --workspace=packages/worker
Для выполнения аудитов безопасности прямо из командной строки:
# Вывод общей справки и использования CLI
node packages/cli/dist/index.js --help
# Вывод справки по команде check (список всех методов, категорий и поставщиков WAF)
node packages/cli/dist/index.js check --help
Определить поставщика WAF за целевым URL:
node packages/cli/dist/index.js detect <url>
Выполнить аудит по целевому URL:
# Проверка по умолчанию (GET-метод, все категории полезных нагрузок)
node packages/cli/dist/index.js check https://example.com
# Пользовательская проверка с конкретными методами, категориями и включённой WAF-эвазией
node packages/cli/dist/index.js check https://example.com -m GET,POST -c "SQL Injection,XSS" --auto-detect-waf --encoding-variations
Выполнить пакетные аудиты для списка URL, определённых в файле:
node packages/cli/dist/index.js batch targets.txt --concurrency 3
Вы можете запустить CLI с помощью Docker, либо загрузив предварительно собранный образ из GitHub Container Registry, либо собрав его локально.
Предварительно собранный Docker-образ доступен в GitHub Container Registry по адресу ghcr.io/sech0us3/waf-checker-cli.
docker pull ghcr.io/sech0us3/waf-checker-cli:latest
docker run --rm ghcr.io/sech0us3/waf-checker-cli:latest --help
docker run --rm -it ghcr.io/sech0us3/waf-checker-cli:latest check https://example.com
docker run --rm -it -v "$(pwd):/data" ghcr.io/sech0us3/waf-checker-cli:latest batch /data/targets.txt --concurrency 3
docker build -t waf-checker-cli .
docker run --rm waf-checker-cli --help
docker run --rm -it waf-checker-cli check https://example.com
docker run --rm -it -v "$(pwd):/data" waf-checker-cli batch /data/targets.txt --concurrency 3
Для запуска набора тестов всего рабочего пространства (с использованием Vitest):
npm test
Читайте мой блог на yoursec.substack.com