Shikata Ga Nai

Private? There is no such things.

HTTP Hostヘッダーで脆弱性をテストする方法

Hello there, ('ω')ノ

🧰 必要なツール

  • Burp Proxy(通信の傍受)
  • Burp Repeater(リクエストの再送・編集)
  • Burp Intruder(自動化されたペイロード挿入)

🪄 ステップ1:Hostヘッダーに任意の値を入れて送信する

例:オリジナルのリクエスト

GET /support HTTP/1.1
Host: example.com

攻撃用に変更:

GET /support HTTP/1.1
Host: attacker.com

このようにHostヘッダーを 意図的に変えて リクエストを送ると、サーバーの挙動がどう変わるかを観察できます。


📌 注意点

通常のプロキシツールではHostヘッダーを書き換えると、リクエスト自体が他のIPに飛んでしまう ため、テストが難しくなります。

しかし、Burp SuiteではHostヘッダーと接続先IPアドレスを分けて管理できるため、自由に改ざんしても正しいサーバーにリクエストを送れます。


🔬 テストの結果を確認する

✔️ サーバーが応答する場合:

  • そのドメインがデフォルトのバーチャルホストに設定されている可能性あり
  • そのまま、Hostヘッダーがどのように使われているかを詳しく調査

❌ サーバーがエラーを返す場合:

  • 例:「Invalid Host header」
  • CDNやロードバランサー経由でのアクセスだと、認識できないHostをブロックする設定がある

この場合は、次のような追加手法を試しましょう。


💡 今後試すべき手法

  • パスワードリセットリンクなどでHostヘッダーの内容が使用される箇所を探す
  • キャッシュヘッダーと組み合わせてキャッシュポイズニングを試す
  • X-Forwarded-Hostなどのヘッダーを併用して挙動を変える

✅ まとめ

チェックポイント 目的
Hostヘッダーの任意値送信 サーバーがどう反応するか確認
レスポンスの挙動を観察 攻撃の糸口を見つける
エラーになる場合は次の手へ CDNやLBが原因なら別手法を検討

Best reagards, (^^ゞ