脆弱性
Host ヘッダインジェクション
別称: X-Forwarded-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 の利用が含まれます。
例
- アプリが Host を利用しているため、パスワードリセットメールに https://attacker.com/reset?token=... が含まれる。
- X-Forwarded-Host で /index に攻撃者 URL を埋め込ませ、CDN キャッシュを汚染する。
関連用語
キャッシュ汚染
共有キャッシュに悪意あるレスポンスを保存させ、以降の他ユーザーに攻撃者のコンテンツを配信する攻撃。
HTTP レスポンス分割
ユーザー入力中の信頼できない CR/LF 文字によって、サーバーが攻撃者の制御する追加 HTTP レスポンスを送出してしまうインジェクション脆弱性。
Open Redirect
Open Redirect — definition coming soon.
サーバーサイドリクエストフォージェリ(SSRF)
攻撃者がサーバーに任意の宛先(多くは内部システム)へ HTTP やその他のネットワークリクエストを送らせることができる Web 脆弱性。
認証の不備
認証やセッション管理の欠陥により、攻撃者が正規ユーザーになりすましたり、アカウントを乗っ取れたりする脆弱性カテゴリ。