
evilwaf is a penetration testing tool designed to detect and bypass common Web Application Firewalls (WAFs).
EvilWAF est un proxy de contournement de pare-feu MITM transparent avancé et un scanner approfondi de vulnérabilités WAF conçu pour les tests de sécurité autorisés. Il opère au niveau de la couche transport — il ne modifie pas les payloads, cookies ou en-têtes de vos outils. Fonctionne avec tout outil tel que (ffuz, sqlmap, nuclei, etc.) prenant en charge --proxy.
--proxy. Zéro configuration côté outil.CF-Connecting-IP, CF-Ray, True-Client-IP) avec des valeurs forgées pour tester la confiance du WAF dans les en-têtes et tenter de contourner la liste blanche d'IP.Layer 1 Network — Contournement de vhost, sondage de chemins sensibles, manipulation de l'en-tête HostLayer 2 RuleEngine — Détection de lacunes de règles basées sur les payloads : SQLi, XSS, RCE, LFILayer 3 RateLimit — Test d'application de la limite de débit en rafale et soutenueLayer 4 Evasion — Contournement par encodage et normalisation avec 10 variantes d'encodage par payloadLayer 5 Behavioural — Analyse temporelle : tarpit, délai de défi JS, détection de back-offLayer 6 Header — Injection d'en-têtes HTTP et contournement par usurpation d'IPLayer 7 TLS — Sondage de versions TLS, contournement SNI, empreinte de certificatsLayer 8 MethodVerb — Contournement par méthode HTTP incluant les méthodes WebDAVLayer 9 Session — Manipulation de cookies, contournement d'authentification, sondes de fixation de sessionLayer 10 Misconfig — Détection de mauvaise configuration du WAF et de fuites d'informations--no-tui pour les scripts et les pipelines CI/CD.--scan-only pour exécuter le scanner de vulnérabilités WAF de manière autonome sans démarrer le proxy.Cloudflare est largement considéré comme le pare-feu d'application web le plus sophistiqué au monde aujourd'hui. Ce n'est pas simplement un ensemble de règles — c'est un système de défense multicouche qui combine plusieurs technologies fonctionnant simultanément pour protéger les applications web.
Au niveau du réseau, Cloudflare opère à travers des centaines de data centers dans le monde, ce qui signifie que chaque requête passe par une infrastructure ayant une visibilité sur les schémas de trafic de millions de sites web à la fois. Cette visibilité mondiale est l'un de ses avantages les plus puissants — elle peut détecter des schémas d'attaque émergents n'importe où dans le monde et déployer des mesures d'atténuation sur toutes les propriétés protégées en quelques secondes.
Au niveau de l'inspection, Cloudflare analyse les requêtes sur plusieurs dimensions simultanément : empreinte TCP/IP, empreinte TLS, structure des trames HTTP/2, ordre des en-têtes, timing des requêtes, schémas comportementaux à travers les sessions et contenu des payloads. Aucun de ces signaux pris isolément ne suffit à bloquer une requête, mais Cloudflare les corrèle tous ensemble pour construire un score de risque par requête.
La composante d'apprentissage automatique est ce qui rend Cloudflare fondamentalement différent des WAF traditionnels. Là où les WAF basés sur des règles recherchent des schémas malveillants connus, les modèles de ML de Cloudflare sont entraînés sur des pétaoctets de trafic d'attaque réel. Ils apprennent à quoi ressemble le trafic légitime d'un navigateur au niveau de la couche transport — la séquence exacte des options TCP, la structure précise d'un ClientHello TLS, l'ordre des trames HTTP/2 SETTINGS — et signalent tout ce qui s'écarte de cette base de référence, même si le payload lui-même semble propre. C'est pourquoi simplement encoder un payload ou faire tourner les en-têtes ne suffit pas contre Cloudflare. Le contournement doit se produire au niveau de la couche transport, pas au niveau de la couche application.
La plupart des techniques de contournement de WAF ciblent le moteur de règles — obscurcissement des payloads, utilisation de variantes d'encodage, fractionnement des chaînes d'attaque entre plusieurs paramètres. Ces techniques fonctionnent contre les WAF basés sur des signatures car ces WAF ne regardent que le contenu des payloads.
Important : à lire avant d'utiliser EvilWAF
Je n'offre pas de support pour les cas d'utilisation illégaux, mais je vous aiderai à atteindre votre objectif dans le cadre de tests autorisés.
EvilWAF est créé par Matrix Leons.
Si EvilWAF vous a été utile, envisagez de soutenir son développement. Votre contribution aide à maintenir et à faire évoluer ce projet.
# 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
Une fois EvilWAF lancé, pointez n'importe quel outil vers lui via le 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"
Sans clés API, EvilWAF fonctionne toujours en utilisant des sources gratuites (historique DNS, certificats SSL, en-têtes HTTP, hash de favicon, énumération de sous-domaines).
Les contributions sont les bienvenues. EvilWAF est en pleine croissance et il y a de nombreux domaines à améliorer.
# 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
Sous licence Apache, version 2.0
_fast_scanner.c) — Extension C Python haute performance pour la classification, l'analyse d'entropie, la détection d'anomalies temporelles et les chemins critiques de statistiques.La défense de Cloudflare opère avant même que le payload ne soit inspecté. Une requête provenant d'une bibliothèque HTTP Python, même envoyant un payload totalement bénin, peut être soumise à un challenge ou bloquée parce que l'empreinte TLS ne correspond à aucun navigateur connu. Cela signifie que l'outil qui émet la requête est identifié avant que le contenu ne soit analysé. Cloudflare appelle cela l'empreinte comportementale, et c'est la raison principale pour laquelle les outils de test d'intrusion standard échouent contre lui, même lorsque les payloads sous-jacents sont corrects.
La limitation de débit sur Cloudflare est également intelligente — ce n'est pas simplement un compteur de requêtes par IP par seconde. Elle suit les schémas de requêtes à travers les sessions, corrèle le comportement des IP partageant le même ASN, et applique des défis progressifs plutôt que des blocages stricts, ce qui rend difficile la détection du seuil par des tests automatisés.
Le développeur d'EvilWAF aborde Cloudflare non pas comme une cible à attaquer mais comme un sujet d'étude. La méthodologie de recherche est systématique : observer comment Cloudflare répond à différentes identités de couche transport, mesurer quels signaux déclenchent des défis, des blocages ou des passages silencieux, et construire des modèles statistiques de son comportement à partir de données en direct.
C'est fondamentalement différent de lire de la documentation ou d'étudier des CVE. Le comportement de Cloudflare ne peut pas être entièrement compris à partir de sources externes car il change en continu — les modèles sont réentraînés, les seuils sont ajustés, de nouveaux signaux sont ajoutés. La seule façon fiable de le comprendre est l'expérimentation en direct, contrôlée et autorisée, ainsi qu'une analyse minutieuse des données collectées.
L'objectif de cette recherche est de produire des outils et des connaissances qui aident la communauté de recherche en sécurité à comprendre à quoi ressemble réellement un contournement de WAF au niveau technique en 2026 — non pas pour nuire, mais pour garantir que les défenseurs comprennent les véritables capacités et limites des technologies sur lesquelles ils s'appuient. Un chercheur en sécurité qui comprend comment Cloudflare détecte et bloque les requêtes est mieux équipé pour tester si les applications qui se trouvent derrière sont réellement protégées.
L'architecture du scanner d'EvilWAF — sessions persistantes, confiance statistique, analyse multicouche, détection d'anomalies temporelles — existe parce que ce type de recherche exige de longues périodes d'observation et une collecte de données rigoureuse, et non des scans rapides. La véritable recherche sur les WAF prend du temps, et les outils devraient le refléter.