脆弱性
HTTP リクエストスマグリング
別称: HRS, リクエスト密輸
定義
前段プロキシとバックエンドサーバーで HTTP リクエストの終端解釈が食い違うことを悪用し、攻撃者が隠しリクエストを送り込めるようにする攻撃。
HTTP リクエストスマグリングは、ロードバランサ、CDN、リバースプロキシ、オリジンサーバー間で Content-Length と Transfer-Encoding ヘッダの解釈が食い違うこと(CL.TE、TE.CL、TE.TE)を悪用します。曖昧なリクエストを構築することで、前段と後段でメッセージ終了位置の解釈がずれ、他ユーザーの接続コンテキストでもう 1 つのリクエストが処理されてしまいます。結果として、キャッシュ汚染、認証情報の窃取、WAF バイパス、アカウント乗っ取りが起こり得ます。対策には、曖昧なリクエストの正規化または拒否、端から端まで HTTP/2 の採用、前後段実装の足並み揃え、ベンダーパッチの適用があります。
例
- CDN が Content-Length、オリジンが Transfer-Encoding を使う構成に対する CL.TE スマグリング。
- 共有 keep-alive 接続で、密輸 POST により次ユーザーの Authorization ヘッダを奪取する。
関連用語
HTTP レスポンス分割
ユーザー入力中の信頼できない CR/LF 文字によって、サーバーが攻撃者の制御する追加 HTTP レスポンスを送出してしまうインジェクション脆弱性。
HTTP デシンク攻撃
プロキシとサーバーのチェーンを意図的に非同期化し、他ユーザーの接続に悪意あるトラフィックを注入する、HTTP リクエストスマグリングの現代的形態。
キャッシュ汚染
共有キャッシュに悪意あるレスポンスを保存させ、以降の他ユーザーに攻撃者のコンテンツを配信する攻撃。
Web キャッシュデセプション
悪意ある URL によって、中間キャッシュが被害者の認証済みの機微なレスポンスを公開可能なパスとして保存してしまう攻撃。
Reverse Proxy
Reverse Proxy — definition coming soon.