Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
waf-tester — Программа для тестирования функциональности WAF | Kitploit
Инструменты/GitHubGitHub/kpomin57/waf-tester
Сканеры уязвимостейОбход IDS/IPSТестирование безопасности APIОбход WAFВеб-безопасностьТестирование на ПроникновениеНеправильная КонфигурацияОбучение и Образование
GitHubkpomin57/waf-tester

waf-tester

Программа для тестирования функциональности WAF

Репозиторий
261034 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

🛡️ WAF Tester

Инструмент оценки WAF для предприятий — Реальные полезные нагрузки. Реальные результаты. Отчеты, готовые к соответствию требованиям.

WAF Tester оценивает Web Application Firewalls, отправляя реальные атакующие полезные нагрузки на заданный URL и сообщая, были ли они заблокированы. Доступен как настольное приложение для Windows (Electron), так и CLI на Python, работающий где угодно.

Скриншот WAF Tester


⚠️ Правовое предупреждение

Этот инструмент предназначен только для авторизованного тестирования безопасности. Используйте его только против систем, которые вы контролируете или на тестирование которых имеете явное письменное разрешение. Несанкционированное тестирование сторонних систем может нарушать Закон о компьютерном мошенничестве и злоупотреблениях (CFAA) и аналогичные законы в вашей юрисдикции. Авторы не несут ответственности за неправомерное использование.


Возможности

Охват тестирования — 90 тестов в 6 наборах

НаборТестыЧто охватывает
OWASP / CWE Core44SQL-инъекции (12 вариантов), XSS (10 вариантов), path traversal, command injection, XXE, SSRF, Log4Shell, SSTI, open redirect
Rate Limiting3Burst flood (30 параллельных), последовательный флуд, обход X-Forwarded-For с ротацией IP
Bot Detection10sqlmap, Nikto, Nmap, Scrapy, Masscan, HeadlessChrome, python-requests, curl, пустой UA, отсутствие заголовка Accept
Bypass Attempts15Двойное URL-кодирование, Unicode fullwidth, null-байты, вариации регистра, обфускация комментариями, CRLF-инъекция, инъекция заголовка Host, переопределение метода, трюки с путями
API Security10GraphQL introspection/batch/enumeration, JWT none-algorithm и путаница алгоритмов, массовое присвоение, подмена HTTP-глаголов, BOLA, путаница content-type
Business Logic8Отрицательное количество, отправка с нулевой ценой, доступ к эндпоинтам администратора, загрязнение HTTP-параметров, перебор аккаунтов, чрезмерное раскрытие данных, принудительный просмотр, повышение привилегий

Соответствие стандартам

Каждый тест помечен одной или несколькими системами соответствия:

  • OWASP Top 10 2021 (A01–A10)
  • CWE (Common Weakness Enumeration)
  • NIST 800-53 (SI-10, AC-3, SC-5, IA-5 и др.)
  • PCI-DSS 4.0 (Требование 6.4)

Интеллектуальное обнаружение

  • Сравнение с базовым уровнем — перед запуском тестов выполняется чистый GET-запрос, затем каждый ответ сравнивается с ним для уменьшения ложных срабатываний
  • Оценка достоверности — результаты оцениваются как HIGH, LIKELY или UNCERTAIN вместо бинарного проход/непроход
  • Многосигнальная оценка — коды состояния, обнаружение WAF-ключевых слов и расхождение длины ответа — все учитывается в вердикте

Поддержка аутентификации

  • Bearer token
  • API-ключ (пользовательское имя заголовка)
  • Cookie / сессионный токен
  • Basic Auth (имя пользователя + пароль)

Настольное приложение для Windows (Electron)

Предварительные требования

  • Node.js версии 18 или новее

Запуск из исходного кода

root@kitploit:~
git clone https://github.com/kpomin57/waf-tester.git
cd waf-tester
npm install
npm start

Сборка установщика для Windows

root@kitploit:~
npm run build

Результат появляется в dist/ в виде NSIS-установщика и портативного .exe. На целевой машине не требуется предустановленного ПО — Electron содержит собственный рантайм.


CLI-версия на Python

Однофайловая версия на Python, работающая везде, где есть Python — на серверах Linux, в CI/CD-пайплайнах, Docker-контейнерах, WSL или в любой среде, где неподходящ Windows .exe.

Предварительные требования

root@kitploit:~
pip install rich requests

Базовое использование

root@kitploit:~
python waf_tester.py --url https://target.example.com

Запускает все 90 тестов, запрашивает подтверждение авторизации, выводит цветные результаты в терминал и сохраняет отчеты в форматах JSON и HTML в текущую директорию.

Параметры

ФлагОписаниеПо умолчанию
--urlЦелевой URL (обязательно)—
--suitesНаборы тестов через запятуювсе
--auth-typenone / bearer / apikey / cookie / basicnone
--auth-valueТокен, строка cookie или значение API-ключа—
--auth-headerИмя заголовка для аутентификации по API-ключуX-API-Key
--auth-userИмя пользователя для Basic Auth—
--auth-passПароль для Basic Auth—
--no-baselineОтключить сравнение с базовым уровнемвыкл
--no-rotate-uaОтключить ротацию User-Agentвыкл
--waf-headerОтправлять идентификационный заголовок X-WAF-Testerвыкл
--outputterminal, json, html (через запятую)все три
--output-dirДиректория для сохранения отчетов.
--timeoutТаймаут на запрос в секундах10
--proxyURL прокси для всех запросов (например, http://127.0.0.1:8080)выкл
--confirmПропустить запрос на подтверждение авторизациивыкл

Примеры

root@kitploit:~
# Запуск всех наборов
python waf_tester.py --url https://app.example.com

# Запуск только наборов OWASP и API
python waf_tester.py --url https://app.example.com --suites owasp,api

# Аутентификация Bearer token
python waf_tester.py --url https://app.example.com/api \
  --auth-type bearer --auth-value eyJhbGciOiJIUzI1NiJ9...

# Аутентификация по API-ключу
python waf_tester.py --url https://app.example.com/api \
  --auth-type apikey --auth-header X-API-Key --auth-value mykey123

# Сохранение отчетов в папку, пропуск подтверждения (CI/CD)
python waf_tester.py --url https://app.example.com \
  --output-dir ./reports --confirm

# Только терминальный вывод — файлы не сохраняются
python waf_tester.py --url https://app.example.com --output terminal

# Маршрутизация трафика через Burp Suite
python waf_tester.py --url https://app.example.com --proxy http://127.0.0.1:8080

Запуск в Docker

root@kitploit:~
docker run --rm -v $(pwd)/reports:/reports \
  python:3.12-slim sh -c \
  "pip install rich requests -q && python waf_tester.py \
   --url https://target.example.com \
   --output-dir /reports --confirm"

Запуск в CI/CD (GitHub Actions)

root@kitploit:~
- name: WAF Evaluation
  run: |
    pip install rich requests
    python waf_tester.py \
      --url ${{ secrets.WAF_TARGET_URL }} \
      --suites owasp,api,bypass \
      --output json \
      --output-dir ./reports \
      --confirm

- name: Upload report
  uses: actions/upload-artifact@v3
  with:
    name: waf-report
    path: reports/

Интеграция с Burp Suite

CLI на Python может направлять весь тестовый трафик через Burp Suite, предоставляя полную HTTP-историю каждой полезной нагрузки, отправленной WAF Tester. Это полезно для ручного анализа запросов и ответов, точной настройки полезных нагрузок, устранения неожиданного поведения WAF, а также для использования собственного сканера или Repeater Burp для интересных находок.

Как это работает

Burp Suite запускает локальный прокси-слушатель (по умолчанию 127.0.0.1:8080). Когда вы указываете WAF Testerу адрес прокси через переменные окружения, каждый запрос инструмента проходит через Burp перед достижением цели. Вы видите каждую полезную нагрузку в HTTP-истории Burp с полным запросом и ответом — код состояния, заголовки, тело — точно так, как их видел WAF.

Настройка

1. Запустите Burp Suite и убедитесь, что прокси-слушатель активен:

Откройте Burp → Proxy → Proxy Settings → убедитесь, что слушатель на 127.0.0.1:8080 (или запомните ваш порт, если он другой).

2. Экспортируйте CA-сертификат Burp и доверьте ему (однократная настройка):

WAF Tester подключается к HTTPS-целям, поэтому Burp должен перехватывать TLS. Перейдите в Burp → Proxy → Proxy Settings → Import/Export CA Certificate → Export as DER. Установите его как доверенный корневой CA в вашей системе, или задайте переменную окружения, чтобы пропустить проверку (подходит для лабораторных условий, не для продакшена).

3. Запустите WAF Tester с параметром --proxy:

root@kitploit:~
python waf_tester.py --url https://target.example.com --proxy http://127.0.0.1:8080

На Windows:

root@kitploit:~
python waf_tester.py --url https://target.example.com --proxy http://127.0.0.1:8080

Вы также можете использовать переменные окружения, если предпочитаете:

root@kitploit:~
HTTPS_PROXY=http://127.0.0.1:8080 HTTP_PROXY=http://127.0.0.1:8080 \
python waf_tester.py --url https://target.example.com

4. Отключите перехват Burp:

В Burp → Proxy → Intercept убедитесь, что перехват выключен — иначе Burp будет приостанавливаться на каждом запросе в ожидании ручной пересылки, и WAF Tester выйдет по таймауту. Вам нужно, чтобы Burp пассивно записывал трафик, а не перехватывал его.

5. Наблюдайте за запросами в HTTP-истории Burp:

Каждая полезная нагрузка WAF Tester отображается отдельной записью. Вы можете щелкнуть правой кнопкой мыши по любому запросу и отправить его в Repeater для ручной модификации и повторной отправки, или в Intruder для дальнейшего фаззинга.

Если возникают ошибки TLS

Если CA-сертификат Burp не является доверенным, можно использовать временную обходную меру --no-verify, отключив проверку SSL в инструменте. Альтернативно, доверьте CA-сертификат Burp системно или используйте цель по HTTP (не HTTPS) для начального тестирования.


Интерпретация результатов

ОценкаОценка (букв.)Значение
90–100%AОтлично — WAF блокирует почти все атакующие векторы
80–89%BХорошо — есть незначительные пробелы, которые стоит изучить
65–79%CУдовлетворительно — присутствуют заметные обходные векторы
50–64%DПлохо — значительные пробелы в защите
< 50%FКритично — WAF в значительной степени неэффективен

Уровни достоверности:

  • HIGH — жесткий блок (403, 406, 429) без двусмысленности
  • LIKELY — ключевые слова WAF в теле ответа, или статус отличается от базового уровня
  • UNCERTAIN — мягкий блок (400, 503), который может быть ошибкой легитимного приложения

Рекомендуемый рабочий процесс тестирования

  1. Запустить против Juice Shop без WAF → подтвердить, что в основном обход (инструмент работает корректно)
  2. Запустить против ModSecurity/OWASP CRS → подтвердить, что в основном заблокировано (логика оценки работает)
  3. Запустить против вашего целевого WAF → реальные результаты оценки
root@kitploit:~
# Juice Shop (без WAF — ожидается, что все обойдено)
docker run -d -p 3000:3000 bkimminich/juice-shop

# ModSecurity с OWASP CRS (ожидается, что большинство заблокировано)
docker run -d -p 80:80 owasp/modsecurity-crs:nginx

Структура проекта

root@kitploit:~
waf-tester/
├── src/
│   ├── main.js          # Основной процесс Electron — вся логика тестов и IPC
│   ├── preload.js       # Безопасный мост контекста
│   └── renderer/
│       ├── index.html   # Оболочка приложения
│       ├── styles.css   # Темная тема UI в стиле военных/SOC
│       └── app.js       # Логика UI, фильтры, живая лента, экспорт
├── waf_tester.py        # Python CLI — один файл, не требует конфигурации
├── package.json
└── README.md

Журнал изменений

v1.2.0

  • Расширено с 40 до 90 тестов на 6 наборов
  • Добавлен набор API Security (GraphQL, JWT, массовое присвоение, BOLA, подмена глаголов)
  • Добавлен набор Business Logic (манипуляция ценами, повышение привилегий, принудительный просмотр)
  • Добавлены теги соответствия (OWASP, CWE, NIST, PCI-DSS) к каждому тесту
  • Добавлен фильтр по фреймворкам в представлении результатов
  • Добавлен Python CLI (waf_tester.py) — один файл, работает где угодно
  • Полный редизайн корпоративного UI — SVG-кольца оценки, анимированная строка сканирования, фон в виде гексагональной сетки

v1.1.0

  • Добавлена поддержка аутентификации (Bearer, API-ключ, cookie, Basic Auth)
  • Добавлено сравнение с базовым уровнем и оценка достоверности (HIGH / LIKELY / UNCERTAIN)
  • Добавлена ротация User-Agent по 6 реалистичным браузерным UA
  • Добавлен переключатель заголовка X-WAF-Tester (опционально, по умолчанию выключен)
  • Добавлен флажок разрешения перед каждым сканированием
  • Исправлена видимость уведомления об экспорте и крах, вызванный CRLF в тестах обхода

v1.0.0

  • Начальный выпуск — 40 тестов, 4 набора, экспорт JSON + HTML

Лицензия

MIT — подробности см. в LICENSE.


Создано для инженеров по безопасности, которым нужна проверка WAF, выходящая за рамки формального соответствия.

Скачать инструмент