mcpField
P
pentest-http-smuggling

pentest-http-smuggling

github.com/jd-opensourceセキュリティ31547 回インストール28 週間前に更新
リポジトリ

pentest-http-smuggling について

許可を得たセキュリティ評価向けに、HTTPリクエストスマグリングやHostヘッダー、キャッシュ攻撃のテスト手順を示すスキルです。プロキシの特定からプロトコル別テスト、影響確認までを扱います。

主な機能

  1. 01プロキシと構成の特定
  2. 02CL.TE、TE.CL、TE.TEのテスト
  3. 03HTTP/2ダウングレードのテスト
  4. 04キャッシュ汚染とHostヘッダーのテスト
  5. 05概念実証による影響確認

活用シーン

  1. 01プロキシとバックエンドの解析差の評価
  2. 02HTTP/2からHTTP/1への変換テスト
  3. 03キャッシュ汚染リスクの検証
  4. 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)

基本的なワークフロー

  1. スタックのフィンガープリンティング:リバースプロキシ(nginx、HAProxy、Cloudflare、AWS ALB)、CDN、ロードバランサーを特定します。HTTP バージョンの対応状況(HTTP/1.1、HTTP/2)と解析動作を確認します。
  2. CL.TE スマグリング:フロントエンドが Content-Length を使用し、バックエンドが Transfer-Encoding を使用するリクエストを作成します。解析の差異とリクエスト境界の混同を観察します。
  3. TE.CL スマグリング:逆のパターンです。フロントエンドが Transfer-Encoding を使用し、バックエンドが Content-Length を使用します。難読化した TE ヘッダーでテストします。
  4. TE.TE スマグリング:両側が Transfer-Encoding を使用しますが、ヘッダーの難読化(大文字・小文字、空白、重複ヘッダー)によって片側の解析を混乱させられる場合があります。
  5. HTTP/2 のダウングレード:リバースプロキシでの H2 から H1 への変換を悪用します。疑似ヘッダー経由のヘッダーインジェクション、H2 ヘッダー内の CRLF インジェクション、H2 CONTINUATION フレームを介したリクエスト分割をテストします。
  6. キャッシュ汚染:攻撃者が制御するコンテンツでキャッシュされたレスポンスを汚染します。キャッシュキーとキャッシュコンテンツの不一致をテストし、異なるクライアントセッションで検証します。
  7. Host ヘッダー攻撃:Host ヘッダーインジェクション、パスワードリセットの汚染、ルーティングを利用した SSRF、曖昧な Host ヘッダーによる Web キャッシュ汚染(WSTG-INPV-17)。
  8. 影響の検証:キャッシュ汚染、認証情報の窃取、リクエストの乗っ取り、またはセキュリティ制御の回避を PoC として実証します。

WSTG の対象範囲

WSTG IDテスト名ステータス
WSTG-INPV-15HTTP リクエストスマグリング✅
WSTG-INPV-17Host ヘッダーインジェクション✅

ツールのカテゴリ

カテゴリツール目的
スマグリングの検出smuggler.py, HTTP Request Smuggler (Burp)CL.TE/TE.CL の自動検出
HTTP/2 テストh2csmuggler, curl --http2, nghttpH2 ダウングレード攻撃と非同期化攻撃
タイミング攻撃Turbo Intruderマイクロ秒精度のリクエストタイミング
Raw リクエストPython sockets, netcat細工した不正な HTTP リクエスト
キャッシュ分析curl, custom scriptsキャッシュ動作の検証
トラフィックキャプチャWireshark, tcpdumpレスポンス境界の分析

参考資料

  • references/tools.md - ツール関数のシグネチャとパラメーター
  • references/workflows.md - 攻撃パターンの定義とテストベクター

コメント