基于 Rust 的 HTTP 请求走私扫描器。
Smugglex 是一款安全测试工具,用于检测 Web 应用程序中的 HTTP 请求走私漏洞。它可测试 CL.TE、TE.CL、TE.TE、H2C 和 H2 走私攻击,提供可选的解析器差异、CL.0 和 0.CL 审计,并且在 HTTPS 目标上使用真正的 HTTP/2(ALPN h2),通过 h2-downgrade 检查来检测 HTTP/2→HTTP/1.1 降级走私(H2.CL / H2.TE)。
详细文档请访问 smugglex.hahwul.com。
brew install hahwul/smugglex/smugglex
需要 Rust 1.88 或更高版本:
git clone https://github.com/hahwul/smugglex
cd smugglex
cargo install --path .
其他安装方法请参阅安装指南。
基本扫描:
smugglex https://target.com
从 stdin 读取 URL:
cat urls.txt | smugglex
将捕获的请求(例如从 Burp Suite 导出的请求)作为请求模板重放:
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
捕获的请求目标会原样发送——点段、矩阵参数和 #
均被保留,不会被规范化——无论是 origin-form(POST /path ...)还是
absolute-form(GET http://...)请求行,因此基于路径的 payload 得以保留。
任何 -H 标头都会合并到捕获的标头之上。
详细用法和选项请参阅使用指南。
smugglex https://target.com -v -o results.json
cat urls.txt | smugglex --exit-first
smugglex 在设计上对自动化使用非常友好:
# 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'
退出码:
0 — 未发现漏洞1 — 至少发现一个漏洞2 — 用法 / 输入错误常见问题及解决方案请参阅故障排除指南。