HTTPヘッダインジェクション攻撃とは?対策方法

HTTPヘッダインジェクション攻撃とは?対策方法についてまとめました。

スポンサーリンク

【HTTPヘッダインジェクションとは】悪意あるスクリプトなどが実行されてしまう攻撃

HTTPヘッダインジェクションとは、HTTPリクエストのクエストリング(URLの後ろに?で続ける部分)で、改行コードを悪用して不正なコードが実行されてしまう攻撃です。
例えば、「任意のクッキーがセットされる」、「任意のURLへリダイレクトされる」などの問題が発生します。

スポンサーリンク

【具体例と対策】任意のクッキーがブラウザに設定される

以下だと「Set-Cookie」に指定された値がブラウザのCookieにセットされてしまいます。

 http://example.com/aaa.cgi?redirect_url=http://example.com/login%0D%0ASet-Cookie:+SID=XXXX

HTTPレスポンスは下記となり、先ほどは存在しなかった「Set-Cookie」があります。

HTTP/1.1 302 Found
Date: Sun, 18 Jun 2021 21:34:35 GMT
Location: http://example.com/login
Set-Cookie: SID=XXXX

本来、「redirect_url」に指定された値は、レスポンスヘッダの「Location」に入りますが、改行コード(%0D%0A)があると、以降の文字列が次の要素として扱われてしまうため、Set-Cookieヘッダが有効になってしまいます。

他レスポンスヘッダとレスポンスボディは空白行で分割されているため、連続で改行コード(%0D%0A%0D%0A)を入れることで、レスポンスボディに任意のHTMLやJavaScriptを挿入される攻撃にもなってしまいます。

対策としては、外部からのパラメータをHTTPレスポンスヘッダに出力しないようにします。

例えば、「redirect_url」に指定された値に「login」が含まれていたら、「http://example.com/login」にリダイレクトさせるといったように、「redirect_url」に指定された値をそのまま使用しないようにします。

情報処理安全確保支援士試験(登録セキスペ)の概要、攻略法
情報処理安全確保支援士試験(登録セキスペ)の概要、攻略法についてまとめました。
【情報処理入門】用語解説・資格試験対策まとめ
情報処理分野の用語・原理・資格試験対策について解説します。
コンピュータ
スポンサーリンク

コメント