pentest-http-smuggling について
許可を得たセキュリティ評価向けに、HTTPリクエストスマグリングやHostヘッダー、キャッシュ攻撃のテスト手順を示すスキルです。プロキシの特定からプロトコル別テスト、影響確認までを扱います。
主な機能
- 01プロキシと構成の特定
- 02CL.TE、TE.CL、TE.TEのテスト
- 03HTTP/2ダウングレードのテスト
- 04キャッシュ汚染とHostヘッダーのテスト
- 05概念実証による影響確認
活用シーン
- 01プロキシとバックエンドの解析差の評価
- 02HTTP/2からHTTP/1への変換テスト
- 03キャッシュ汚染リスクの検証
- 04リクエスト乗っ取りの影響記録
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jd-opensource/ joysafeter --skill pentest-http-smugglingインストール後、Claude Code で/pentest-http-smugglingを入力して読み込まれたか確認します。
同梱ファイルreferences/tools.mdreferences/workflows.md
詳細
Pentest HTTP Smuggling
目的
HTTP リクエストの解析におけるフロントエンドプロキシとバックエンドサーバーの不一致を検出し、悪用します。これらの攻撃はセキュリティ制御を回避し、キャッシュを汚染し、リクエストを乗っ取ります。標準的なテイント解析パイプラインではまったく検出されません。
前提条件
認可要件
- プロトコルレベルのテストを明示的に対象範囲に含む書面による認可
- インフラストラクチャの把握 — 経路上にあるすべてのリバースプロキシ、CDN、ロードバランサーを特定します
- キャッシュ汚染テストのロールバック計画(CDN のパージ権限)
- インフラストラクチャチームの緊急連絡先(リクエストスマグリングは他のユーザーにも影響する可能性があります)
環境のセットアップ
- 細工した HTTP リクエストを送信できる、raw socket 対応の Python 3.x
- HTTP Request Smuggler 拡張機能を備えた Burp Suite Professional
- HTTP/2 対応でコンパイルされた curl(
--http2-prior-knowledge) - タイミングに依存する攻撃のための Turbo Intruder
- レスポンス分析用のネットワークキャプチャツール(Wireshark/tcpdump)
基本的なワークフロー
- スタックのフィンガープリンティング:リバースプロキシ(nginx、HAProxy、Cloudflare、AWS ALB)、CDN、ロードバランサーを特定します。HTTP バージョンの対応状況(HTTP/1.1、HTTP/2)と解析動作を確認します。
- CL.TE スマグリング:フロントエンドが Content-Length を使用し、バックエンドが Transfer-Encoding を使用するリクエストを作成します。解析の差異とリクエスト境界の混同を観察します。
- TE.CL スマグリング:逆のパターンです。フロントエンドが Transfer-Encoding を使用し、バックエンドが Content-Length を使用します。難読化した TE ヘッダーでテストします。
- TE.TE スマグリング:両側が Transfer-Encoding を使用しますが、ヘッダーの難読化(大文字・小文字、空白、重複ヘッダー)によって片側の解析を混乱させられる場合があります。
- HTTP/2 のダウングレード:リバースプロキシでの H2 から H1 への変換を悪用します。疑似ヘッダー経由のヘッダーインジェクション、H2 ヘッダー内の CRLF インジェクション、H2 CONTINUATION フレームを介したリクエスト分割をテストします。
- キャッシュ汚染:攻撃者が制御するコンテンツでキャッシュされたレスポンスを汚染します。キャッシュキーとキャッシュコンテンツの不一致をテストし、異なるクライアントセッションで検証します。
- Host ヘッダー攻撃:Host ヘッダーインジェクション、パスワードリセットの汚染、ルーティングを利用した SSRF、曖昧な Host ヘッダーによる Web キャッシュ汚染(WSTG-INPV-17)。
- 影響の検証:キャッシュ汚染、認証情報の窃取、リクエストの乗っ取り、またはセキュリティ制御の回避を PoC として実証します。
WSTG の対象範囲
| WSTG ID | テスト名 | ステータス |
|---|---|---|
| WSTG-INPV-15 | HTTP リクエストスマグリング | ✅ |
| WSTG-INPV-17 | Host ヘッダーインジェクション | ✅ |
ツールのカテゴリ
| カテゴリ | ツール | 目的 |
|---|---|---|
| スマグリングの検出 | smuggler.py, HTTP Request Smuggler (Burp) | CL.TE/TE.CL の自動検出 |
| HTTP/2 テスト | h2csmuggler, curl --http2, nghttp | H2 ダウングレード攻撃と非同期化攻撃 |
| タイミング攻撃 | Turbo Intruder | マイクロ秒精度のリクエストタイミング |
| Raw リクエスト | Python sockets, netcat | 細工した不正な HTTP リクエスト |
| キャッシュ分析 | curl, custom scripts | キャッシュ動作の検証 |
| トラフィックキャプチャ | Wireshark, tcpdump | レスポンス境界の分析 |
参考資料
references/tools.md- ツール関数のシグネチャとパラメーターreferences/workflows.md- 攻撃パターンの定義とテストベクター
コメント
Markdown 対応