
Scanner de contrebande de requêtes HTTP propulsé par Rust.
Scanner de HTTP Request Smuggling propulsé par Rust.
Smugglex est un outil de test de sécurité qui détecte les vulnérabilités de HTTP Request Smuggling dans les applications web. Il teste les attaques CL.TE, TE.CL, TE.TE, H2C et H2, propose des audits opt-in de type parser-discrepancy, CL.0 et 0.CL, et — sur les cibles HTTPS — parle un véritable HTTP/2 (ALPN h2) pour détecter le smuggling par rétrogradation HTTP/2→HTTP/1.1 (H2.CL / H2.TE) via la vérification h2-downgrade.
Pour une documentation détaillée, consultez smugglex.hahwul.com.
brew install hahwul/smugglex/smugglex
Nécessite Rust 1.88 ou une version ultérieure :
git clone https://github.com/hahwul/smugglex
cd smugglex
cargo install --path .
Pour les autres méthodes d'installation, consultez le Guide d'installation.
Scan de base :
smugglex https://target.com
Lire les URLs depuis stdin :
cat urls.txt | smugglex
Rejouer une requête capturée (par exemple exportée depuis Burp Suite) comme modèle de requête :
smugglex --raw-request request.txt # cible extraite de l'en-tête Host
smugglex --raw-request request.txt --raw-request-proto http
smugglex --raw-request request.txt -H "X-Collab: abcd.oastify.com" # -H est additif
La request-target capturée est envoyée telle quelle — les dot-segments, les matrix params et #
sont préservés, non normalisés — à la fois pour les lignes de requête en origin-form (POST /path ...) et en
absolute-form (GET http://...), afin que les payloads basés sur le chemin survivent.
Tous les en-têtes -H sont fusionnés par-dessus ceux capturés.
Pour une utilisation et des options détaillées, consultez le Guide d'utilisation.
smugglex https://target.com -v -o results.json
cat urls.txt | smugglex --exit-first
smugglex est conçu pour être adapté à une utilisation automatisée :
# Sortie JSON propre (uniquement du JSON sur stdout) + code de sortie approprié
smugglex --json https://target.com
echo $? # 0 = propre, 1 = vulnérabilité trouvée
# Traitement par lots + sortie structurée (un seul document JSON valide)
cat urls.txt | smugglex -f json -o report.json
# Mode silencieux + JSON pour les pipelines
smugglex -q --json https://target.com | jq '.summary.vulnerable_targets'
Codes de sortie :
0 — Aucune vulnérabilité trouvée1 — Au moins une vulnérabilité trouvée2 — Erreur d'utilisation / d'entréeConsultez le Guide des pipelines et les Formats de sortie pour plus d'informations.
Les problèmes courants et leurs solutions sont disponibles dans le Guide de dépannage.