
evilwaf is a penetration testing tool designed to detect and bypass common Web Application Firewalls (WAFs).
EvilWAF è un proxy avanzato trasparente di bypass firewall MITM e uno scanner approfondito di vulnerabilità WAF progettato per test di sicurezza autorizzati. Opera a livello di trasporto — non tocca payload, cookie o header dei tuoi strumenti. Funziona con qualsiasi strumento come (ffuz, sqlmap, nuclei ecc.) che supporti --proxy.
--proxy. Zero configurazione lato strumento.CF-Connecting-IP, CF-Ray, True-Client-IP) con valori artigianali per testare la fiducia del WAF negli header e tentare il bypass della allowlist IP.Layer 1 Network — Bypass virtual host, probing di percorsi sensibili, manipolazione dell'header HostLayer 2 RuleEngine — Rilevamento di lacune nelle regole basato su payload: SQLi, XSS, RCE, LFILayer 3 RateLimit — Test dell'applicazione del rate-limit a raffica e sostenutoLayer 4 Evasion — Bypass di encoding e normalizzazione con 10 varianti di encoding per payloadLayer 5 Behavioural — Analisi temporale: tarpit, ritardo delle sfide JS, rilevamento di back-offLayer 6 Header — Iniezione di header HTTP e bypass dello spoofing IPLayer 7 TLS — Sondaggio delle versioni TLS, bypass SNI, fingerprinting dei certificatiLayer 8 MethodVerb — Bypass dei metodi HTTP inclusi i metodi WebDAVLayer 9 Session — Manipolazione dei cookie, bypass dell'autenticazione, sonde per il session fixationLayer 10 Misconfig — Rilevamento di configurazioni errate del WAF e di leak informativi--no-tui per script e pipeline CI/CD.--scan-only per eseguire lo scanner di vulnerabilità WAF standalone senza avviare il proxy.Cloudflare è ampiamente considerato il Web Application Firewall più sofisticato al mondo oggi. Non è semplicemente un insieme di regole — è un sistema di difesa multilivello che combina diverse tecnologie che lavorano simultaneamente per proteggere le applicazioni web.
A livello di rete, Cloudflare opera in centinaia di data center in tutto il mondo, il che significa che ogni richiesta passa attraverso un'infrastruttura che ha visibilità sui modelli di traffico di milioni di siti web contemporaneamente. Questa visibilità globale è uno dei suoi vantaggi più potenti: può rilevare pattern di attacco emergenti ovunque nel mondo e implementare mitigazioni su tutte le proprietà protette in pochi secondi.
A livello di ispezione, Cloudflare analizza le richieste su più dimensioni simultaneamente: impronta TCP/IP, impronta TLS, struttura dei frame HTTP/2, ordine degli header, tempistica delle richieste, pattern comportamentali tra sessioni e contenuto dei payload. Nessuno di questi segnali da solo è sufficiente per bloccare una richiesta, ma Cloudflare li correla tutti insieme per costruire un punteggio di rischio per richiesta.
La componente di machine learning è ciò che rende Cloudflare fondamentalmente diverso dai WAF tradizionali. Mentre i WAF basati su regole cercano pattern dannosi noti, i modelli ML di Cloudflare sono addestrati su petabyte di traffico di attacco reale. Imparano come appare il traffico legittimo di un browser a livello di trasporto — la sequenza esatta delle opzioni TCP, la struttura precisa di un ClientHello TLS, l'ordine dei frame HTTP/2 SETTINGS — e segnalano qualsiasi cosa si discosti da quella baseline, anche se il payload stesso appare pulito. Questo è il motivo per cui semplicemente codificare un payload o ruotare gli header non è sufficiente contro Cloudflare. Il bypass deve avvenire a livello di trasporto, non a livello applicativo.
La maggior parte delle tecniche di bypass dei WAF ha come bersaglio il motore delle regole: offuscare i payload, usare varianti di encoding, suddividere le stringhe di attacco tra parametri. Queste tecniche funzionano contro i WAF basati su firme perché questi WAF guardano solo al contenuto del payload.
La difesa di Cloudflare opera prima ancora che il payload venga ispezionato. Una richiesta da una libreria HTTP Python, anche se invia un payload completamente benigno, può essere sfidata o bloccata perché l'impronta TLS non corrisponde a nessun browser noto. Ciò significa che lo strumento che effettua la richiesta viene identificato prima che il contenuto venga analizzato. Cloudflare chiama questo fingerprinting comportamentale, ed è il motivo principale per cui gli strumenti standard di penetration testing falliscono contro di esso anche quando i payload sottostanti sono corretti.
Importante: leggere questo prima di usare EvilWAF
Non offro supporto per casi d'uso illegali, ma ti aiuterò a raggiungere il tuo obiettivo nei test autorizzati.
EvilWAF è realizzato da Matrix Leons.
Se EvilWAF ti è stato utile, considera di supportarne lo sviluppo. Il tuo contributo aiuta a mantenere e far crescere questo progetto.
# 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 volta che EvilWAF è in esecuzione, punta qualsiasi strumento ad esso tramite 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"
Senza chiavi API, EvilWAF funziona comunque usando fonti gratuite (cronologia DNS, certificati SSL, header HTTP, hash favicon, enumerazione dei sottodomini).
I contributi sono benvenuti. EvilWAF è in crescita e ci sono molte aree da migliorare.
# 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
Concesso in licenza ai sensi della Apache License, versione 2.0
_fast_scanner.c) — Estensione C ad alte prestazioni per Python per classificazione, analisi dell'entropia, rilevamento di anomalie temporali e percorsi critici statistici.Anche il rate limiting su Cloudflare è intelligente: non è semplicemente un contatore di richieste per IP al secondo. Tiene traccia dei pattern di richiesta tra sessioni, correla il comportamento tra IP che condividono lo stesso ASN e applica sfide progressive invece di blocchi netti, rendendo difficile rilevare la soglia tramite test automatizzati.
Lo sviluppatore di EvilWAF affronta Cloudflare non come un bersaglio da attaccare ma come un soggetto di studio. La metodologia di ricerca è sistematica: osservare come Cloudflare risponde a diverse identità a livello di trasporto, misurare quali segnali innescano sfide rispetto a blocchi o passaggi silenziosi e costruire modelli statistici del suo comportamento dai dati reali.
Questo è fondamentalmente diverso dal leggere documentazione o studiare CVE. Il comportamento di Cloudflare non può essere compreso appieno da fonti esterne perché cambia continuamente: i modelli vengono riaddestrati, le soglie vengono regolate, vengono aggiunti nuovi segnali. L'unico modo affidabile per comprenderlo è attraverso sperimentazione dal vivo, controllata e autorizzata, e un'attenta analisi dei dati raccolti.
L'obiettivo di questa ricerca è produrre strumenti e conoscenze che aiutino la comunità della ricerca sulla sicurezza a capire come appare realmente un bypass WAF a livello tecnico nel 2026 — non per causare danni, ma per garantire che i difensori comprendano le reali capacità e limitazioni delle tecnologie su cui fanno affidamento. Un ricercatore di sicurezza che comprende come Cloudflare rileva e blocca le richieste è meglio equipaggiato per testare se le applicazioni dietro di esso sono realmente protette.
L'architettura dello scanner di EvilWAF — sessioni persistenti, confidenza statistica, analisi multilivello, rilevamento di anomalie temporali — esiste perché questo tipo di ricerca richiede lunghi periodi di osservazione e una rigorosa raccolta dati, non scansioni veloci. La vera ricerca sui WAF richiede tempo, e gli strumenti dovrebbero rifletterlo.