
Rust製HTTPリクエストスマグリングスキャナー。
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 # ターゲットはHostヘッダーから取得
smugglex --raw-request request.txt --raw-request-proto http
smugglex --raw-request request.txt -H "X-Collab: abcd.oastify.com" # -Hは追加式
キャプチャされたリクエストターゲットはそのまま送信されます — ドットセグメント、マトリックスパラメータ、#は正規化されずに保持されます — オリジンフォーム(POST /path ...)と絶対フォーム(GET http://...)の両方のリクエストラインで、パスベースのペイロードが維持されます。-Hヘッダーはキャプチャされたヘッダーの上にマージされます。
詳細な使用方法とオプションについては、使用ガイドをご覧ください。
smugglex https://target.com -v -o results.json
cat urls.txt | smugglex --exit-first
smugglexは自動化された使用に優しい設計です:
# クリーンなJSON出力(stdoutにはJSONのみ)+ 適切な終了コード
smugglex --json https://target.com
echo $? # 0 = クリーン、1 = 脆弱性を検出
# バッチ + 構造化出力(単一の有効なJSONドキュメント)
cat urls.txt | smugglex -f json -o report.json
# パイプライン向けのクワイエット + JSON
smugglex -q --json https://target.com | jq '.summary.vulnerable_targets'
終了コード:
0 — 脆弱性が見つからなかった1 — 少なくとも1つの脆弱性が見つかった2 — 使用法 / 入力エラー詳細については、パイプラインガイドと出力フォーマットをご覧ください。
一般的な問題と解決策はトラブルシューティングガイドでご覧いただけます。