HTTPヘッダインジェクション 【HTTP header injection】
概要
HTTPヘッダインジェクション(HTTP header injection)とは、Webシステムに対する攻撃手法の一つで、Webのデータ送受信に用いられるHTTPのヘッダ部分を改竄することにより、Webブラウザに不正なデータを送信する手法。また、そのような攻撃を可能にする、ソフトウェアの保安上の欠陥(脆弱性)。HTTPヘッダには制御情報が記述されているが、これは改行区切りのテキストデータであるため、値として改行コードを含む内容を記載すると、改行コード以降の内容が本来存在しないはずのヘッダ項目として送信相手に渡され、解釈されることになる。
外部から渡されたパラメータをそのままヘッダに記載するようなシステムでは、外部の攻撃者が不正に細工したパラメータを渡すことにより、攻撃用のヘッダ項目を出現させ、閲覧者のWebブラウザに対して何らかの攻撃を行うことができるようになる。
これにより、Cookie情報を改竄して偽のセッションIDを与えることでセッションフィクセーション攻撃やセッションハイジャックに利用できる場合がある。連続した改行を挿入すると、そこでヘッダ部が終了して本文(ボディ部)が始まると解釈されるため、本文側に不正なスクリプトなどを挿入してWebブラウザを攻撃することができる。複数のHTTPレスポンスを作り出す攻撃手法もあり、「HTTPレスポンス分割攻撃」と呼ばれる。
(2023.9.3更新)