
Escáner de contrabando de solicitudes HTTP impulsado por Rust.
Escáner de contrabando de peticiones HTTP impulsado por Rust.
Smugglex es una herramienta de pruebas de seguridad que detecta vulnerabilidades de contrabando de peticiones HTTP en aplicaciones web. Prueba ataques de contrabando CL.TE, TE.CL, TE.TE, H2C y H2, y — en objetivos HTTPS — habla HTTP/2 real (ALPN h2) para detectar contrabando por degradación de HTTP/2→HTTP/1.1 (H2.CL / H2.TE) mediante la comprobación h2-downgrade.
Para documentación detallada, visite smugglex.hahwul.com.
brew install hahwul/smugglex/smugglex
Requiere Rust 1.70 o superior:
git clone https://github.com/hahwul/smugglex
cd smugglex
cargo install --path .
Para otros métodos de instalación, consulte la Guía de instalación.
Escaneo básico:
smugglex https://target.com
Leer URLs desde stdin:
cat urls.txt | smugglex
Reproducir una petición capturada (p. ej. exportada desde Burp Suite) como plantilla de petición:
smugglex --raw-request request.txt # target taken from the Host header
smugglex --raw-request request.txt --raw-request-proto http
smugglex --raw-request request.txt -H "X-Collab: abcd.oastify.com" # -H is additive
El request-target capturado se envía tal cual — los dot-segments, los matrix params y # se conservan, sin normalizar — tanto para las líneas de petición en forma de origen (POST /path ...) como en forma absoluta (GET http://...), de modo que las cargas útiles basadas en rutas sobreviven. Los encabezados -H se superponen a los capturados.
Para información detallada sobre el uso y las opciones, consulte la Guía de uso.
smugglex https://target.com -v -o results.json
cat urls.txt | smugglex --exit-first
smugglex está diseñado para facilitar el uso automatizado:
# 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'
Códigos de salida:
0 — No se encontraron vulnerabilidades1 — Se encontró al menos una vulnerabilidad2 — Error de uso / entradaConsulte la Guía de pipelines y los Formatos de salida para más información.
Los problemas comunes y sus soluciones están disponibles en la Guía de solución de problemas.