
waf-checker v1.1.0
Автоматизированный инструмент оценки WAF, который определяет производителей брандмауэров, тестирует 19 категорий атак с использованием продвинутых обходных полезных нагрузок и предоставляет цветовой анализ обхода через CLI, Cloudflare Worker или Docker.
WAF Checker
Этот проект помогает проверить, насколько хорошо ваш Web Application Firewall (WAF) защищает ваш продукт от распространённых веб-атак. Он может работать как Cloudflare Worker (со встроенным интерактивным веб-интерфейсом) или как отдельный CLI-инструмент на Node.js.
Возможности
Основное тестирование
- Введите целевой URL, выберите HTTP-методы (GET, POST и т.д.) и категории атак.
- Отправляет запросы с атакующими полезными нагрузками (в параметрах, заголовках или как пути к файлам).
- Цветовые индикаторы в терминале и вебе: 🟢 403/BLOCKED = заблокировано, 🔴 2xx/5xx = возможный обход, 🟠 3xx = перенаправление.
- Результаты отображаются в таблице с фильтрацией и деталями по каждой полезной нагрузке.
Категории атак (всего 19)
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.
Определение WAF
- Автоматическое определение типа WAF перед тестированием (Cloudflare, AWS WAF, ModSecurity, Akamai, Imperva, F5 BIG-IP и др.).
- Предлагает специфические техники обхода на основе обнаруженного WAF.
- Может автоматически переключаться на продвинутые полезные нагрузки, специфичные для WAF.
Продвинутые полезные нагрузки и кодирование
- WAF Bypass Payloads — двойное кодирование, юникод, смешанный регистр, внедрение комментариев, полиморфные полезные нагрузки.
- Enhanced Payloads — современные техники обхода.
- Variations кодирования — URL, Юникод, HTML Entity, Hex, Octal, Base64 с автоматическим комбинированием.
- Обходы, специфичные для WAF: Cloudflare, AWS WAF, ModSecurity.
Манипуляции HTTP-протоколом
- HTTP Verb Tampering — тестирование нестандартных HTTP-методов.
- Parameter Pollution — дублирование и разделение параметров между строкой запроса и телом.
- Content-Type Confusion — альтернативные типы контента для обхода правил.
- Заголовки Request Smuggling.
- Варианты Host Header Injection.
- Переопределение HTTP-метода через заголовки (
X-HTTP-Method-Overrideи др.).
Пакетное тестирование
- Тестирование нескольких URL одновременно.
- Настраиваемая степень параллелизма и задержка между запросами.
- Отслеживание прогресса в реальном времени.
Структура проекта
Проект организован как монорепозиторий на основе NPM Workspaces:
packages/core/: Основная библиотека для тестирования безопасности, определение полезных нагрузок, сигнатуры для определения WAF и кодировщики для обфускации.packages/worker/: Пакет Cloudflare Worker, обслуживающий статический веб-интерфейс HTML/JS и конечные точки JSON API.packages/cli/: Инструмент командной строки на Node.js для выполнения аудитов прямо из терминала.
Установка и сборка
Из корневого каталога выполните установку зависимостей и сборку всех рабочих областей:
npm install
npm run build
Как запустить
1. Веб-версия (Cloudflare Worker)
Для локального запуска сервера разработки Worker (требуется Wrangler):
npm run dev:worker
Веб-интерфейс будет доступен по адресу http://localhost:8787 (или на другом порту, если 8787 занят).
Для развёртывания Worker на Cloudflare:
npx wrangler deploy --workspace=packages/worker
2. CLI-версия (Node.js)
Для выполнения аудитов безопасности прямо из командной строки:
# Вывод общей справки и использования CLI
node packages/cli/dist/index.js --help
# Вывод справки по команде check (список всех методов, категорий и поставщиков WAF)
node packages/cli/dist/index.js check --help
Определение WAF
Определить поставщика 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
3. Docker-версия
Вы можете запустить 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