
Scanner di HTTP Request Smuggling basato su Rust.
Scanner di HTTP Request Smuggling basato su Rust.
Smugglex è uno strumento di test di sicurezza che rileva vulnerabilità di HTTP Request Smuggling nelle applicazioni web. Testa gli attacchi di smuggling CL.TE, TE.CL, TE.TE, H2C e H2 e — su target HTTPS — parla HTTP/2 reale (ALPN h2) per rilevare lo smuggling di downgrade HTTP/2→HTTP/1.1 (H2.CL / H2.TE) tramite il controllo h2-downgrade.
Per documentazione dettagliata, visita smugglex.hahwul.com.
brew install hahwul/smugglex/smugglex
Richiede Rust 1.70 o versioni successive:
git clone https://github.com/hahwul/smugglex
cd smugglex
cargo install --path .
Per altri metodi di installazione, consulta la Guida all'installazione.
Scansione di base:
smugglex https://target.com
Leggi gli URL da stdin:
cat urls.txt | smugglex
Riproduci una richiesta acquisita (ad es. esportata da Burp Suite) come modello di richiesta:
smugglex --raw-request request.txt # target preso dall'header Host
smugglex --raw-request request.txt --raw-request-proto http
smugglex --raw-request request.txt -H "X-Collab: abcd.oastify.com" # -H è additivo
Il request-target catturato viene inviato senza modifiche — dot-segment, parametri matrix e # vengono preservati, non normalizzati — sia per le righe di richiesta in origin-form (POST /path ...) che in absolute-form (GET http://...), così i payload basati sul percorso sopravvivono. Gli eventuali header -H vengono aggiunti sopra quelli catturati.
Per utilizzo dettagliato e opzioni, consulta la Guida all'utilizzo.
smugglex https://target.com -v -o results.json
cat urls.txt | smugglex --exit-first
smugglex è progettato per essere adatto all'uso automatizzato:
# Clean JSON output (only JSON on stdout) + proper exit code
smugglex --json https://target.com
echo $? # 0 = clean, 1 = vulnerable found
# Batch + structured output (single valid JSON document)
cat urls.txt | smugglex -f json -o report.json
# Quiet + JSON for pipelines
smugglex -q --json https://target.com | jq '.summary.vulnerable_targets'
Codici di uscita:
0 — Nessuna vulnerabilità trovata1 — Almeno una vulnerabilità trovata2 — Errore di utilizzo / inputVedi la Guida alla pipeline e i Formati di output per maggiori informazioni.
Problemi comuni e soluzioni sono disponibili nella Guida alla risoluzione dei problemi.