Shikata Ga Nai

Private? There is no such things.

HTTP Hostヘッダーを使った脆弱性診断の基本

Hello there, ('ω')ノ

🧪 テスト準備:必要なツール

  • Burp Proxy(通信の傍受)
  • Burp Repeater(リクエストの編集と再送)
  • Burp Intruder(自動ペイロード送信)

🛠️ ステップ1:Hostヘッダーを書き換えて送信してみる

まずは、ターゲットのWebアプリケーションに対して、以下のように「存在しないドメイン名」をHostヘッダーに設定してリクエストを送ってみましょう。

GET / HTTP/1.1
Host: attacker.example

このとき、レスポンスの変化に注目します。


📊 結果によって判断できること

✅ 正常なレスポンスが返ってくる場合

  • サーバーにデフォルト(フォールバック)設定がある
  • Hostヘッダーがそのまま処理に使われている可能性あり
  • このまま攻撃シナリオが実行できる可能性が高い

❌ エラー(例:"Invalid Host header")が返る場合

  • サーバーやCDNが不明なホストを拒否するよう設定されている
  • この場合は、別のアプローチ(例:X-Forwarded-Hostなどのヘッダー)を試す

💡 Burpでの補足ポイント

Burp Suiteは、Hostヘッダーの変更によって送信先IPが変わらないように設計されています。つまり、意図しないホスト名であっても正しいサーバーにリクエストを送れるので、Hostヘッダーの操作が正しく試せます。


🎯 応用ステップ

Hostヘッダーにより以下のような脆弱性を引き起こせる可能性があります:

  • パスワードリセットリンクのドメイン乗っ取り
  • Webキャッシュポイズニング
  • SSRF(サーバーサイドリクエストフォージェリ)
  • 社内サーバーへのアクセス誘導

それぞれのパターンを再現するには、Hostヘッダーの値がどのように使われているかをログやレスポンスの挙動から読み取る必要があります。


✅ まとめ

チェック内容 観察すべきポイント
任意のHostヘッダーを送信 通常通りページが表示されるか
エラーメッセージが返るか CDNやリバースプロキシの制御状況
レスポンスにヘッダーの影響があるか 絶対URLやリダイレクトリンクの内容

Best regards, (^^ゞ