
evilwaf is a penetration testing tool designed to detect and bypass common Web Application Firewalls (WAFs).
EvilWAF es un proxy transparente avanzado de bypass de firewall MITM y un escáner profundo de vulnerabilidades de WAF diseñado para pruebas de seguridad autorizadas. Opera en la capa de transporte: no toca payloads, cookies ni cabeceras de tus herramientas. Funciona con cualquier herramienta como (ffuz, sqlmap, nuclei, etc.) que soporte --proxy.
--proxy. Cero configuración en el lado de la herramienta.CF-Connecting-IP, CF-Ray, True-Client-IP) con valores manipulados para probar la confianza del WAF en las cabeceras e intentar eludir la lista blanca de IPs.Layer 1 Network — Bypass de host virtual, sondeo de rutas sensibles, manipulación de la cabecera HostLayer 2 RuleEngine — Detección de brechas de reglas basada en payloads: SQLi, XSS, RCE, LFILayer 3 RateLimit — Pruebas de cumplimiento del límite de tasa en ráfagas y sostenidoLayer 4 Evasion — Bypass de codificación y normalización con 10 variantes de codificación por payloadLayer 5 Behavioural — Análisis de tiempos: tarpit, retardo de desafío JS, detección de back-offLayer 6 Header — Inyección de cabeceras HTTP y bypass de suplantación de IPLayer 7 TLS — Sondeo de versiones TLS, bypass de SNI, huella de certificadosLayer 8 MethodVerb — Bypass de métodos HTTP, incluidos métodos WebDAVLayer 9 Session — Manipulación de cookies, bypass de autenticación, sondas de fijación de sesiónLayer 10 Misconfig — Detección de mala configuración del WAF y de fugas de información--no-tui para scripts y pipelines de CI/CD.--scan-only para ejecutar el escáner de vulnerabilidades del WAF de forma independiente sin iniciar el proxy.Cloudflare es ampliamente considerado el firewall de aplicaciones web (WAF) más sofisticado del mundo actual. No es simplemente un conjunto de reglas: es un sistema de defensa multicapa que combina varias tecnologías trabajando simultáneamente para proteger aplicaciones web.
A nivel de red, Cloudflare opera en cientos de centros de datos en todo el mundo, lo que significa que cada solicitud pasa a través de una infraestructura que tiene visibilidad sobre los patrones de tráfico de millones de sitios web a la vez. Esta visibilidad global es una de sus ventajas más poderosas: puede detectar patrones de ataque que surgen en cualquier parte del mundo y desplegar mitigaciones en todas las propiedades protegidas en cuestión de segundos.
A nivel de inspección, Cloudflare analiza las solicitudes en múltiples dimensiones simultáneamente: huella TCP/IP, huella TLS, estructura de tramas HTTP/2, orden de cabeceras, temporización de la solicitud, patrones de comportamiento entre sesiones y contenido del payload. Ninguna de estas señales por sí sola es suficiente para bloquear una solicitud, pero Cloudflare las correlaciona todas para construir una puntuación de riesgo por solicitud.
El componente de aprendizaje automático es lo que hace que Cloudflare sea fundamentalmente diferente de los WAF tradicionales. Mientras que los WAF basados en reglas buscan patrones maliciosos conocidos, los modelos de ML de Cloudflare se entrenan con petabytes de tráfico de ataques reales. Aprenden cómo es el tráfico legítimo de navegadores en la capa de transporte — la secuencia exacta de opciones TCP, la estructura precisa de un ClientHello TLS, el orden de las tramas SETTINGS de HTTP/2 — y marcan cualquier cosa que se desvíe de esa línea base, incluso si el payload en sí parece limpio. Por eso, simplemente codificar un payload o rotar cabeceras no es suficiente contra Cloudflare. El bypass tiene que ocurrir en la capa de transporte, no en la capa de aplicación.
La mayoría de las técnicas de bypass de WAF apuntan al motor de reglas: ofuscar payloads, usar variantes de codificación, dividir cadenas de ataque entre parámetros. Estas técnicas funcionan contra WAF basados en firmas porque esos WAF solo analizan el contenido del payload.
La defensa de Cloudflare opera antes de que el payload siquiera sea inspeccionado. Una solicitud desde una librería HTTP de Python, incluso enviando un payload totalmente benigno, puede ser desafiada o bloqueada porque la huella TLS no coincide con ningún navegador conocido. Esto significa que la herramienta que realiza la solicitud es identificada antes de que el contenido sea analizado. Cloudflare llama a esto huella conductual, y es la razón principal por la que las herramientas estándar de pruebas de penetración fallan contra él incluso cuando los payloads subyacentes son correctos.
Importante: lee esto antes de usar EvilWAF
No ofrezco soporte para casos de uso ilegales, pero te ayudaré a alcanzar tu objetivo en pruebas autorizadas.
EvilWAF está hecho por Matrix Leons.
Si EvilWAF te ha sido útil, considera apoyar su desarrollo. Tu contribución ayuda a mantener y hacer crecer este proyecto.
# 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
Una vez que EvilWAF está en ejecución, apunta cualquier herramienta a él mediante 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"
Sin claves de API, EvilWAF sigue funcionando usando fuentes gratuitas (historial de DNS, certificados SSL, cabeceras HTTP, hash de favicon, enumeración de subdominios).
Las contribuciones son bienvenidas. EvilWAF está creciendo y hay muchas áreas que mejorar.
# 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 bajo la Licencia Apache, versión 2.0
_fast_scanner.c) — Extensión C de Python de alto rendimiento para clasificación, análisis de entropía, detección de anomalías temporales y rutas críticas de estadísticas.El límite de tasa en Cloudflare también es inteligente: no es simplemente un contador de solicitudes por IP por segundo. Rastrea patrones de solicitudes entre sesiones, correlaciona el comportamiento entre IPs que comparten el mismo ASN y aplica desafíos progresivos en lugar de bloqueos duros, lo que dificulta detectar el umbral mediante pruebas automatizadas.
El desarrollador de EvilWAF aborda Cloudflare no como un objetivo para atacar, sino como un sujeto de estudio. La metodología de investigación es sistemática: observar cómo responde Cloudflare a diferentes identidades de la capa de transporte, medir qué señales provocan desafíos frente a bloqueos frente a pases silenciosos, y construir modelos estadísticos de su comportamiento a partir de datos reales.
Esto es fundamentalmente diferente de leer documentación o estudiar CVEs. El comportamiento de Cloudflare no puede entenderse completamente desde fuentes externas porque cambia continuamente: los modelos se reentrenan, los umbrales se ajustan, se añaden nuevas señales. La única forma fiable de entenderlo es mediante experimentación en vivo, controlada y autorizada, y un análisis cuidadoso de los datos recopilados.
El objetivo de esta investigación es producir herramientas y conocimiento que ayuden a la comunidad de investigación en seguridad a entender cómo se ve realmente un bypass de WAF a nivel técnico en 2026 — no para causar daño, sino para asegurar que los defensores comprendan las capacidades y limitaciones reales de las tecnologías en las que confían. Un investigador de seguridad que entiende cómo Cloudflare detecta y bloquea solicitudes está mejor preparado para probar si las aplicaciones que están detrás están realmente protegidas.
La arquitectura del escáner de EvilWAF — sesiones persistentes, confianza estadística, análisis multicapa, detección de anomalías temporales — existe porque este tipo de investigación requiere largos periodos de observación y una recopilación rigurosa de datos, no escaneos rápidos. La investigación real de WAF lleva tiempo, y las herramientas deberían reflejarlo.