Host ヘッダインジェクション
Host ヘッダインジェクション とは何ですか?
Host ヘッダインジェクションアプリが HTTP Host ヘッダ(または X-Forwarded-Host)を信用して URL を組み立てることにより、攻撃者がリダイレクトやキャッシュ汚染を引き起こせる脆弱性。
Host ヘッダインジェクションは、サーバーが Host ヘッダや X-Forwarded-Host などのプロキシ系派生ヘッダを使って絶対 URL(パスワードリセットリンク、リダイレクト、画像 src、canonical、OAuth コールバックなど)を作成し、許可リスト検証を行っていないときに発生します。攻撃者はヘッダを書き換えてリンク先を悪意あるドメインに向け、パスワードリセットの汚染、キャッシュ汚染、SSRF、応答の攻撃者ホストへの誘導などを引き起こします。リバースプロキシ構成や Host 入力が複数あるフレームワークで頻発します。対策には、設定された信頼ホストから URL を導出する、Host/X-Forwarded-Host を許可リストで検証する、未知の forwarded ヘッダをエッジで破棄する、HSTS の利用が含まれます。
● 例
- 01
アプリが Host を利用しているため、パスワードリセットメールに https://attacker.com/reset?token=... が含まれる。
- 02
X-Forwarded-Host で /index に攻撃者 URL を埋め込ませ、CDN キャッシュを汚染する。
● よくある質問
Host ヘッダインジェクション とは何ですか?
アプリが HTTP Host ヘッダ(または X-Forwarded-Host)を信用して URL を組み立てることにより、攻撃者がリダイレクトやキャッシュ汚染を引き起こせる脆弱性。 サイバーセキュリティの 脆弱性 カテゴリに属します。
Host ヘッダインジェクション とはどういう意味ですか?
アプリが HTTP Host ヘッダ(または X-Forwarded-Host)を信用して URL を組み立てることにより、攻撃者がリダイレクトやキャッシュ汚染を引き起こせる脆弱性。
Host ヘッダインジェクション からどのように防御しますか?
Host ヘッダインジェクション に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
Host ヘッダインジェクション の別名は何ですか?
一般的な別名: X-Forwarded-Host インジェクション, 仮想ホスト悪用。