Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
waf-tester — Um programa para testar a funcionalidade de WAF | Kitploit
Ferramentas/GitHubGitHub/kpomin57/waf-tester
Scanners de VulnerabilidadesEvasão de IDS/IPSTestes de Segurança de APIsBypass de WAFSegurança WebTestes de PenetraçãoConfiguração IncorretaAprendizado e Educação
GitHubkpomin57/waf-tester

waf-tester

Um programa para testar a funcionalidade de WAF

Ver Repositório
2610há 3 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

🛡️ WAF Tester

Ferramenta de Avaliação Corporativa de WAF — Payloads de ataque reais. Resultados reais. Relatórios prontos para conformidade.

O WAF Tester avalia Firewalls de Aplicação Web (WAFs) enviando payloads de ataque reais para uma URL fornecida pelo usuário e relatando se foram bloqueados. Disponível como aplicativo Windows desktop (Electron) e como CLI Python que funciona em qualquer lugar.

Screenshot do WAF Tester


⚠️ Aviso Legal

Esta ferramenta destina-se apenas a testes de segurança autorizados. Use-a apenas contra sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar. Testes não autorizados de sistemas de terceiros podem violar o Computer Fraud and Abuse Act (CFAA) e leis equivalentes em sua jurisdição. Os autores não assumem nenhuma responsabilidade pelo uso indevido.


Recursos

Cobertura de Testes — 90 Testes em 6 Suítes

SuíteTestesO que Cobre
Núcleo OWASP / CWE44SQL injection (12 variantes), XSS (10 variantes), path traversal, command injection, XXE, SSRF, Log4Shell, SSTI, open redirect
Rate Limiting3Burst flood (30 concorrentes), flood sequencial, bypass de rotação de IP X-Forwarded-For
Detecção de Bots10sqlmap, Nikto, Nmap, Scrapy, Masscan, HeadlessChrome, python-requests, curl, UA vazio, cabeçalhos Accept ausentes
Tentativas de Bypass15Dupla codificação URL, Unicode fullwidth, bytes nulos, variação de maiúsculas/minúsculas, ofuscação de comentários, injeção CRLF, injeção de cabeçalho Host, sobrescrita de método, truques de caminho
Segurança de API10GraphQL introspection/batch/enumeration, JWT none-algorithm & algorithm confusion, mass assignment, HTTP verb tampering, BOLA, content-type confusion
Lógica de Negócio8Quantidade negativa, submissão de preço zero, acesso a endpoint de administrador, poluição de parâmetros HTTP, enumeração de contas, exposição excessiva de dados, forced browsing, escalonamento de privilégio

Mapeamento de Conformidade

Cada teste é etiquetado para um ou mais frameworks de conformidade:

  • OWASP Top 10 2021 (A01–A10)
  • CWE (Common Weakness Enumeration)
  • NIST 800-53 (SI-10, AC-3, SC-5, IA-5, etc.)
  • PCI-DSS 4.0 (Requisito 6.4)

Inteligência de Detecção

  • Comparação de linha de base — busca um GET limpo antes dos testes e compara cada resposta para reduzir falsos positivos
  • Pontuação de confiança — resultados classificados como HIGH, LIKELY ou UNCERTAIN em vez de aprovação/reprovação binária
  • Avaliação multi-sinal — códigos de status, detecção de palavras-chave de WAF e divergência de comprimento da resposta contribuem para o veredito

Suporte a Autenticação

  • Token Bearer
  • Chave de API (nome de cabeçalho personalizado)
  • Cookie / token de sessão
  • Autenticação Básica (usuário + senha)

Aplicativo Windows Desktop (Electron)

Pré-requisitos

  • Node.js 18 ou posterior

Executar a partir do Código Fonte

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

Criar Instalador Windows

root@kitploit:~
npm run build

A saída aparece em dist/ como um instalador NSIS e um .exe portátil. Nenhum pré-requisito é necessário na máquina de destino — o Electron empacota seu próprio runtime.


Versão CLI Python

Uma versão em arquivo único Python que funciona em qualquer lugar onde Python esteja disponível — servidores Linux, pipelines CI/CD, contêineres Docker, WSL ou qualquer ambiente onde o .exe do Windows não seja uma opção.

Pré-requisitos

root@kitploit:~
pip install rich requests

Uso Básico

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

Executa todos os 90 testes, solicita confirmação de autorização, imprime resultados codificados por cores no terminal e salva relatórios JSON e HTML no diretório atual.

Opções

Exemplos

root@kitploit:~
# Executar todas as suítes
python waf_tester.py --url https://app.example.com

# Executar apenas as suítes OWASP e API
python waf_tester.py --url https://app.example.com --suites owasp,api

# Autenticação com token Bearer
python waf_tester.py --url https://app.example.com/api \
  --auth-type bearer --auth-value eyJhbGciOiJIUzI1NiJ9...

# Autenticação com chave de API
python waf_tester.py --url https://app.example.com/api \
  --auth-type apikey --auth-header X-API-Key --auth-value mykey123

# Salvar relatórios em uma pasta, pular confirmação (CI/CD)
python waf_tester.py --url https://app.example.com \
  --output-dir ./reports --confirm

# Apenas saída no terminal — nenhum arquivo salvo
python waf_tester.py --url https://app.example.com --output terminal

# Roteirizar tráfego através do Burp Suite
python waf_tester.py --url https://app.example.com --proxy http://127.0.0.1:8080

Executando em 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"

Executando em CI/CD (GitHub Actions)

root@kitploit:~
- name: Avaliação WAF
  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: Fazer upload do relatório
  uses: actions/upload-artifact@v3
  with:
    name: waf-report
    path: reports/

Integração com Burp Suite

O CLI Python pode rotear todo o tráfego de teste através do Burp Suite, fornecendo um histórico HTTP completo de cada payload que o WAF Tester envia. Isso é útil para inspeção manual de requisições e respostas, ajuste fino de payloads, solução de problemas de comportamento inesperado do WAF e uso do próprio scanner ou repeater do Burp em achados interessantes.

Como funciona

O Burp Suite executa um listener de proxy local (padrão 127.0.0.1:8080). Quando você aponta as variáveis de ambiente de proxy do WAF Tester para esse endereço, cada requisição que a ferramenta faz passa pelo Burp antes de atingir o destino. Você vê cada payload no histórico HTTP do Burp com a requisição e resposta completas — código de status, cabeçalhos, corpo — exatamente como o WAF viu.

Configuração

1. Inicie o Burp Suite e confirme que o listener de proxy está ativo:

Abra Burp → Proxy → Proxy Settings → confirme que o listener está em 127.0.0.1:8080 (ou anote sua porta, se diferente).

2. Exporte o certificado CA do Burp e o confie (configuração única):

O WAF Tester se conecta a destinos HTTPS, então o Burp precisa interceptar TLS. Vá em Burp → Proxy → Proxy Settings → Import/Export CA Certificate → Export as DER. Instale-o como uma CA raiz confiável em seu sistema, ou defina a variável de ambiente abaixo para pular a verificação (ok para laboratório, não para produção).

3. Execute o WAF Tester com --proxy:

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

No Windows:

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

Você também pode usar variáveis de ambiente, se preferir:

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. Desligue a intercepção do Burp:

Em Burp → Proxy → Intercept, certifique-se de que a intercepção está desligada — caso contrário, o Burp pausará em cada requisição esperando que você a encaminhe manualmente, e o WAF Tester atingirá o time-out. Você quer que o Burp registre passivamente o tráfego, não que o intercepte.

5. Observe as requisições chegarem no histórico HTTP do Burp:

Cada payload do WAF Tester aparece como uma entrada separada. Você pode clicar com o botão direito em qualquer requisição e enviá-la para o Repeater para ajustar e reenviar manualmente, ou para o Intruder para fuzzing adicional.

Se você obtiver erros TLS

Se o certificado CA do Burp não for confiável, adicione um workaround --no-verify desabilitando temporariamente a verificação SSL na ferramenta. Alternativamente, confie o CA do Burp em todo o sistema ou use um destino HTTP (não HTTPS) para testes iniciais.


Interpretando Resultados

Níveis de confiança:

  • HIGH — bloqueio firme (status 403, 406, 429) sem ambiguidade
  • LIKELY — palavras-chave WAF no corpo da resposta, ou status difere da linha de base
  • UNCERTAIN — bloqueio suave (400, 503) que pode ser um erro legítimo do aplicativo

Fluxo de Trabalho de Teste Recomendado

  1. Executar contra o Juice Shop sem WAF → confirmar que a maioria foi ignorada (ferramenta está funcionando corretamente)
  2. Executar contra ModSecurity/OWASP CRS → confirmar que a maioria foi bloqueada (lógica de pontuação funciona)
  3. Executar contra seu WAF de destino → resultados de avaliação reais
root@kitploit:~
# Juice Shop (sem WAF — espere que tudo seja ignorado)
docker run -d -p 3000:3000 bkimminich/juice-shop

# ModSecurity com OWASP CRS (espere que a maioria seja bloqueada)
docker run -d -p 80:80 owasp/modsecurity-crs:nginx

Estrutura do Projeto

root@kitploit:~
waf-tester/
├── src/
│   ├── main.js          # Processo principal Electron — toda a lógica de teste e IPC
│   ├── preload.js       # Ponte de contexto seguro
│   └── renderer/
│       ├── index.html   # Shell do aplicativo
│       ├── styles.css   # Tema escuro militar/SOC da interface
│       └── app.js       # Lógica da UI, filtros, feed ao vivo, exportação
├── waf_tester.py        # CLI Python — arquivo único, sem configuração necessária
├── package.json
└── README.md

Changelog

v1.2.0

  • Expandido de 40 para 90 testes em 6 suítes
  • Adicionada suíte Segurança de API (GraphQL, JWT, mass assignment, BOLA, verb tampering)
  • Adicionada suíte Lógica de Negócio (manipulação de preço, escalonamento de privilégio, forced browsing)
  • Adicionadas etiquetas de conformidade (OWASP, CWE, NIST, PCI-DSS) em cada teste
  • Adicionado Filtro de Framework na visualização de Resultados
  • Adicionado CLI Python (waf_tester.py) — arquivo único, funciona em qualquer lugar
  • Reformulação completa da interface corporativa — anéis de pontuação SVG, linha de varredura animada, fundo de grade hexagonal

v1.1.0

  • Adicionado suporte a autenticação (Bearer, chave de API, cookie, Autenticação Básica)
  • Adicionados comparação de linha de base e pontuação de confiança (HIGH / LIKELY / UNCERTAIN)
  • Adicionada rotação de User-Agent em 6 UAs de navegadores realistas
  • Adicionado alternância de cabeçalho X-WAF-Tester (opt-in, desligado por padrão)
  • Adicionada caixa de seleção de permissão antes de cada varredura
  • Corrigida visibilidade do toast de exportação e travamento por CRLF nos testes de bypass

v1.0.0

  • Lançamento inicial — 40 testes, 4 suítes, exportação JSON + HTML

Licença

MIT — veja LICENSE para detalhes.


Construído para engenheiros de segurança que precisam de validação de WAF que vá além da conformidade de checkbox.

Baixar ferramenta
FlagDescriçãoPadrão
--urlURL de destino (obrigatório)—
--suitesSuítes separadas por vírgula para executarall
--auth-typenone / bearer / apikey / cookie / basicnone
--auth-valueToken, string de cookie ou valor de chave de API—
--auth-headerNome do cabeçalho para autenticação de chave de APIX-API-Key
--auth-userNome de usuário para Autenticação Básica—
--auth-passSenha para Autenticação Básica—
--no-baselineDesabilitar comparação de linha de baseoff
--no-rotate-uaDesabilitar rotação de User-Agentoff
--waf-headerEnviar cabeçalho de identificação X-WAF-Testeroff
--outputterminal, json, html (separados por vírgula)all three
--output-dirDiretório para salvar arquivos de relatório.
--timeoutTimeout por requisição em segundos10
--proxyURL de proxy para todas as requisições (ex.: http://127.0.0.1:8080)off
--confirmPular a confirmação de autorizaçãooff
PontuaçãoNotaSignificado
90–100%AExcelente — WAF bloqueando quase todos os vetores de ataque
80–89%BBom — pequenas lacunas que vale a pena investigar
65–79%CRegular — vetores de bypass notáveis presentes
50–64%DRuim — lacunas significativas de proteção
< 50%FCrítico — WAF é amplamente ineficaz