問題 No.4760
Webアプリケーションの脆弱性を利用し、HTTPレスポンス分割攻撃などに繋がる「HTTPヘッダインジェクション攻撃」の概要として、最も適切なものはどれか。
【正解の解説】
Webアプリケーションへの入力値に改行コードが含まれていることを検証・無効化しない不備を突き、任意のHTTPヘッダやボディを不正に追加する攻撃
これはレストランの注文伝票に勝手に「改行」を入れて「お会計は無料、さらに高級ワインを追加」と別の指示を勝手に書き足すような悪質なイタズラです。Webサーバーとブラウザの会話のルールであるHTTPヘッダの区切り(改行)をハッカーに乗っ取られ、偽のページを見せられたりデータを盗まれたりします。
スポンサーリンク
【その他の選択肢の解説】
Webアプリケーションへの入力値にSQL文の断片が含まれていることを検証・無効化しない不備を突き、データベースの機密情報を不正に取得する攻撃
名前に「インジェクション」とついているため混同しやすいですが、こちらはデータベースへ送るSQL文を書き換える手法です。HTTPヘッダではなく、ログイン画面などの入力欄からデータベースのデータを盗み見たり破壊したりする点が決定的な違いです。
Webアプリケーションへの入力値に制御文字が含まれていることを検証・無効化しない不備を突き、OS上の任意のコマンドを実行させる攻撃
制御文字という言葉に惑わされやすいですが、これはサーバーのOSを直接操作してシステムを乗っ取るための攻撃です。Webの通信ルールを歪めるHTTPヘッダインジェクションとは異なり、サーバーの裏側で動いているOSの黒い画面の命令を勝手に実行させる点が全く異なります。
Webアプリケーションへの入力値にHTMLタグが含まれていることを検証・無効化しない不備を突き、利用者のブラウザ上で任意のスクリプトを実行させる攻撃
HTMLタグやスクリプトを混入させる点は似ていますが、標的が異なります。クロスサイトスクリプティングは閲覧者のブラウザを攻撃してCookieなどを盗むのに対し、HTTPヘッダインジェクションはHTTPの通信制御を狂わせて偽のレスポンスを返させる点が大きな違いです。