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

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

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

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

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

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

Example Domain

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」に指定された値をそのまま使用しないようにします。

情報処理安全確保支援士試験(登録セキスペ)の概要、攻略法
情報処理安全確保支援士試験(登録セキスペ)の概要、攻略法についてまとめました。
【情報処理入門】テクノロジ系、マネジメント系、ストラテジ系、資格試験
情報処理の基礎知識(テクノロジ系、マネジメント系、ストラテジ系)や資格試験についてまとめました。なお、情報処理技術者試験の出題分野別(テクノロジ系、マネージメント系、ストラテジ系)に各項目を整理しています。そのため、ITパスポート、基本情...

コメント

タイトルとURLをコピーしました