鳩丸ぐろっさり (用語集)

bakera.jp > 鳩丸ぐろっさり (用語集) > HTTP Response Splitting

用語「HTTP Response Splitting」について

HTTP Response Splitting (えいちてぃーてぃーぴーれすぽんすすぷりってぃんぐ)

話題 : セキュリティ

日本語にすると「HTTP 応答分割攻撃」といったところでしょうか (IPA 的には「HTTP レスポンス分割」みたいです)。簡単に言うと、HTTP応答ヘッダに CR+LF やら Content-Length: 0 やらをインジェクションして、ひとつの HTTP 応答が二つの HTTP 応答であるように仕立てる攻撃です。

以下のような感じの応答を捏造します。

HTTP/1.1 302 Found
Conetnt-Type: text/html
Location: http://example.com
Content-Length: 0

HTTP/1.1 200 OK
Conetnt-Type: text/html

悪意あるコンテンツ

すると、Content-Length: 0 な応答の後にもう一つの HTTP 応答が返ってきているように見えます。ものによっては前者に従ってリダイレクトしつつ、何故か後者の内容をキャッシュしてしまったりすることがあったりするようです。

この攻撃は、HTTP 応答ヘッダに任意の内容がインジェクションできる場合に可能となります。よくあるのは Location: フィールドの値として出力する URL が外部から入力されるシステムで、このサニタイズを怠っているとあっさり成立することがあります。HTTP 応答ヘッダに外部入力を出力する際は、確実に CR+LF をサニタイズしなければなりません。

最近の日記

関わった本など