
evilwaf is a penetration testing tool designed to detect and bypass common Web Application Firewalls (WAFs).
EvilWAF é um proxy avançado de bypass de firewall MITM transparente e um scanner profundo de vulnerabilidades de WAF, projetado para testes de segurança autorizados. Ele opera na camada de transporte — não toca em payloads, cookies ou cabeçalhos das suas ferramentas. Funciona com qualquer ferramenta como(ffuz, sqlmap, nuclei etc.) que suporte --proxy.
--proxy. Configuração zero no lado da ferramenta.CF-Connecting-IP, CF-Ray, True-Client-IP) com valores elaborados para testar a confiança do WAF em cabeçalhos e tentar o bypass da lista de permissões de IP.Layer 1 Network — bypass de host virtual, sondagem de caminhos sensíveis, manipulação do cabeçalho HostLayer 2 RuleEngine — detecção de lacunas de regras baseadas em payload: SQLi, XSS, RCE, LFILayer 3 RateLimit — teste de aplicação de limite de taxa em rajadas e sustentadoLayer 4 Evasion — bypass de codificação e normalização com 10 variantes de codificação por payloadLayer 5 Behavioural — análise de temporização: tarpit, atraso do desafio JS, detecção de back-offLayer 6 Header — injeção de cabeçalho HTTP e bypass de spoofing de IPLayer 7 TLS — sondagem de versões TLS, bypass de SNI, impressão digital de certificadosLayer 8 MethodVerb — bypass de método HTTP incluindo métodos WebDAVLayer 9 Session — manipulação de cookies, bypass de autenticação, sondas de fixação de sessãoLayer 10 Misconfig — detecção de má configuração do WAF e vazamento de informações--no-tui para scripts e pipelines de CI/CD.--scan-only para executar o scanner de vulnerabilidades do WAF de forma independente, sem iniciar o proxy.A Cloudflare é amplamente considerada o Web Application Firewall mais sofisticado do mundo atualmente. Não é simplesmente um conjunto de regras — é um sistema de defesa em múltiplas camadas que combina várias tecnologias trabalhando simultaneamente para proteger aplicações web.
No nível de rede, a Cloudflare opera em centenas de data centers globalmente, o que significa que cada requisição passa por uma infraestrutura com visibilidade dos padrões de tráfego de milhões de sites ao mesmo tempo. Essa visibilidade global é uma das suas vantagens mais poderosas — ela pode detectar padrões de ataque que surgem em qualquer lugar do mundo e implementar mitigações em todas as propriedades protegidas em segundos.
No nível de inspeção, a Cloudflare analisa as requisições em múltiplas dimensões simultaneamente: impressão digital TCP/IP, impressão digital TLS, estrutura de frames HTTP/2, ordenação de cabeçalhos, temporização da requisição, padrões comportamentais entre sessões e conteúdo do payload. Nenhum desses sinais isoladamente é suficiente para bloquear uma requisição, mas a Cloudflare correlaciona todos eles para construir uma pontuação de risco por requisição.
O componente de aprendizado de máquina é o que torna a Cloudflare fundamentalmente diferente dos WAFs tradicionais. Enquanto os WAFs baseados em regras procuram padrões maliciosos conhecidos, os modelos de ML da Cloudflare são treinados com petabytes de tráfego real de ataques. Eles aprendem como o tráfego legítimo de navegadores se parece na camada de transporte — a sequência exata de opções TCP, a estrutura precisa de um TLS ClientHello, a ordem dos frames de SETTINGS HTTP/2 — e sinalizam qualquer coisa que se desvie dessa linha de base, mesmo que o payload pareça limpo. É por isso que simplesmente codificar um payload ou rotacionar cabeçalhos não é suficiente contra a Cloudflare. O bypass precisa acontecer na camada de transporte, não na camada de aplicação.
A maioria das técnicas de bypass de WAF tem como alvo o mecanismo de regras — ofuscando payloads, usando variantes de codificação, dividindo strings de ataque entre parâmetros. Essas técnicas funcionam contra WAFs baseados em assinaturas porque esses WAFs analisam apenas o conteúdo do payload.
A defesa da Cloudflare opera antes mesmo de o payload ser inspecionado. Uma requisição de uma biblioteca HTTP Python, mesmo enviando um payload totalmente benigno, pode ser desafiada ou bloqueada porque a impressão digital TLS não corresponde a nenhum navegador conhecido. Isso significa que a ferramenta que faz a requisição é identificada antes de o conteúdo ser analisado. A Cloudflare chama isso de impressão digital comportamental, e é a principal razão pela qual as ferramentas padrão de teste de penetração falham contra ela, mesmo quando os payloads subjacentes estão corretos.
Importante: Leia isto antes de usar o EvilWAF
Não ofereço suporte para casos de uso ilegais, mas ajudarei você a alcançar seu objetivo em testes autorizados.
EvilWAF é feito por Matrix Leons.
Se o EvilWAF foi útil para você, considere apoiar o seu desenvolvimento. Sua contribuição ajuda a manter este projeto mantido e em crescimento.
# EvilWAF generates a local CA to intercept HTTPS traffic. Trust it once.
# Run EvilWAF first — CA is auto-generated at startup
# Then find the cert:
ls /tmp/evilwaf_ca_*/evilwaf-ca.pem
# Linux — trust system-wide
sudo cp /tmp/evilwaf_ca_*/evilwaf-ca.pem /usr/local/share/ca-certificates/evilwaf-ca.crt
sudo update-ca-certificates
# macOS
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain \
/tmp/evilwaf_ca_*/evilwaf-ca.pem
# For tools like sqlmap, pass --ignore-proxy=False or equivalent for your tool.
# 1. Create virtual environment
python3 -m venv myenv
# 2. Activate virtual environment
source myenv/bin/activate
# 3. Clone and install
git clone https://github.com/matrixleons/evilwaf.git
cd evilwaf
pip3 install -r requirements.txt
# 4. Build C extension (optional, improves scanner performance)
python setup_fast_scanner.py build_ext --inplace
python3 evilwaf.py -h
docker build -t evilwaf .
docker run -it evilwaf -t https://example.com
# Basic — Standard Proxy Mode
python3 evilwaf.py -t https://target.com
# Auto-Hunt Origin IP Behind WAF
python3 evilwaf.py -t https://target.com --auto-hunt
# EvilWAF runs 10 scanners in parallel, ranks candidates by confidence, then asks:
# [?] Use 1.2.3.4 as origin IP for bypass? [y/n]:
# If confirmed, all traffic goes directly to the real server, bypassing WAF completely.
# Manual Origin IP (if already known)
python3 evilwaf.py -t https://target.com --server-ip 1.2.3.4
# With Tor IP Rotation
python3 evilwaf.py -t https://target.com --enable-tor
# Headless Mode (No TUI)
python3 evilwaf.py -t https://target.com --no-tui
# WAF Vulnerability Scanner — alongside proxy
python3 evilwaf.py -t https://target.com --scan-vulns
# WAF Vulnerability Scanner — standalone, no proxy
python3 evilwaf.py -t https://target.com --scan-only
# WAF Vulnerability Scanner — custom rate and output
python3 evilwaf.py -t https://target.com --scan-only --scan-rps 5.0 --scan-output ./results
# Upstream Proxy
python3 evilwaf.py -t https://target.com --upstream-proxy socks5://127.0.0.1:1080
python3 evilwaf.py -t https://target.com --upstream-proxy http://user:[email protected]:8080
python3 evilwaf.py -t https://target.com --proxy-file proxies.txt
# Custom Listen Address and Port
python3 evilwaf.py -t https://target.com --listen-host 0.0.0.0 --listen-port 9090
Quando o EvilWAF estiver em execução, aponte qualquer ferramenta para ele via proxy:
# sqlmap
sqlmap -u "https://target.com/page?id=1" --proxy=http://127.0.0.1:8080 --ignore-proxy=False
# ffuf
ffuf -u https://target.com/FUZZ -x http://127.0.0.1:8080
# nuclei
nuclei -u https://target.com -proxy http://127.0.0.1:8080
# curl (for testing)
curl -x http://127.0.0.1:8080 https://target.com
export SHODAN_API_KEY="your_key"
export SECURITYTRAILS_API_KEY="your_key"
export VIRUSTOTAL_API_KEY="your_key"
export CENSYS_API_ID="your_id"
export CENSYS_API_SECRET="your_secret"
Sem chaves de API, o EvilWAF ainda funciona usando fontes gratuitas (histórico de DNS, certificados SSL, cabeçalhos HTTP, hash de favicon, enumeração de subdomínios).
Contribuições são bem-vindas. O EvilWAF está crescendo e há muitas áreas para melhorar.
# Fork and clone
git clone https://github.com/matrixleons/evilwaf/fork
git checkout -b my-new-feature
git commit -am 'Add some feature'
git push origin my-new-feature
# Submit a pull request
Licenciado sob a Apache License, Versão 2.0.
_fast_scanner.c) — Extensão C de alto desempenho para Python voltada para classificação, análise de entropia, detecção de anomalias de temporização e caminhos críticos de estatísticas.O limite de taxa na Cloudflare também é inteligente — não é simplesmente um contador de requisições por IP por segundo. Ele rastreia padrões de requisição entre sessões, correlaciona comportamentos entre IPs que compartilham o mesmo ASN e aplica desafios progressivos em vez de bloqueios rígidos, dificultando a detecção do limite por meio de testes automatizados.
O desenvolvedor do EvilWAF aborda a Cloudflare não como um alvo a atacar, mas como um objeto de estudo. A metodologia de pesquisa é sistemática: observar como a Cloudflare responde a diferentes identidades na camada de transporte, medir quais sinais provocam desafios versus bloqueios versus passes silenciosos e construir modelos estatísticos do seu comportamento a partir de dados reais.
Isso é fundamentalmente diferente de ler documentação ou estudar CVEs. O comportamento da Cloudflare não pode ser totalmente compreendido a partir de fontes externas porque muda continuamente — os modelos são retreinados, os limites são ajustados, novos sinais são adicionados. A única maneira confiável de entendê-lo é por meio de experimentação ao vivo, controlada e autorizada, e de uma análise cuidadosa dos dados coletados.
O objetivo desta pesquisa é produzir ferramentas e conhecimento que ajudem a comunidade de pesquisa em segurança a entender como o bypass de WAF realmente se parece em nível técnico em 2026 — não para causar danos, mas para garantir que os defensores compreendam as reais capacidades e limitações das tecnologias em que confiam. Um pesquisador de segurança que entende como a Cloudflare detecta e bloqueia requisições está mais bem preparado para testar se as aplicações atrás dela estão realmente protegidas.
A arquitetura do scanner do EvilWAF — sessões persistentes, confiança estatística, análise em múltiplas camadas, detecção de anomalias de temporização — existe porque esse tipo de pesquisa exige longos períodos de observação e coleta rigorosa de dados, não varreduras rápidas. A pesquisa real de WAF leva tempo, e as ferramentas devem refletir isso.