
Scanner de Contrabando de Requisições HTTP desenvolvido em Rust.
Scanner de HTTP Request Smuggling com tecnologia Rust.
Smugglex é uma ferramenta de teste de segurança que detecta vulnerabilidades de HTTP Request Smuggling em aplicações web. Ela testa ataques CL.TE, TE.CL, TE.TE, H2C e H2, oferece auditorias opt-in de parser-discrepancy, CL.0 e 0.CL e — em alvos HTTPS — fala HTTP/2 real (ALPN h2) para detectar smuggling por downgrade de HTTP/2→HTTP/1.1 (H2.CL / H2.TE) através da verificação h2-downgrade.
Para documentação detalhada, visite smugglex.hahwul.com.
brew install hahwul/smugglex/smugglex
Requer Rust 1.88 ou superior:
git clone https://github.com/hahwul/smugglex
cd smugglex
cargo install --path .
Para outros métodos de instalação, consulte o Guia de Instalação.
Varredura básica:
smugglex https://target.com
Ler URLs da entrada padrão:
cat urls.txt | smugglex
Reproduzir uma requisição capturada (por exemplo, exportada do Burp Suite) como template de requisição:
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
O request-target capturado é enviado literalmente — dot-segments, matrix params e #
são preservados, não normalizados — tanto para linhas de requisição em origin-form (POST /path ...) quanto
absolute-form (GET http://...), de modo que payloads baseados em caminho sobrevivem.
Quaisquer cabeçalhos -H são mesclados sobre os capturados.
Para uso detalhado e opções, consulte o Guia de Uso.
smugglex https://target.com -v -o results.json
cat urls.txt | smugglex --exit-first
O smugglex foi projetado para ser amigável ao 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 saída:
0 — Nenhuma vulnerabilidade encontrada1 — Pelo menos uma vulnerabilidade encontrada2 — Erro de uso / entradaConsulte o Guia de Pipeline e os Formatos de Saída para mais informações.
Problemas comuns e soluções estão disponíveis no Guia de Solução de Problemas.