
Rust 기반 HTTP 요청 스머글링 스캐너.
Rust 기반 HTTP Request Smuggling 스캐너입니다.
Smugglex는 웹 애플리케이션에서 HTTP Request Smuggling 취약점을 탐지하는 보안 테스트 도구입니다. CL.TE, TE.CL, TE.TE, H2C 및 H2 스머글링 공격을 테스트하며, 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.70 이상이 필요합니다:
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
캡처된 request-target은 그대로 전송됩니다. dot-segments, matrix params 및 #는 정규화되지 않고 보존됩니다. 이는 origin-form(POST /path ...) 및 absolute-form(GET http://...) 요청 라인 모두에 적용되므로 경로 기반 페이로드가 유지됩니다. 모든 -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 — 사용법 / 입력 오류자세한 내용은 파이프라인 가이드 및 출력 형식을 참조하세요.
일반적인 문제와 해결 방법은 문제 해결 가이드에서 확인할 수 있습니다.