この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は イ

解説

HTTPリクエストヘッダの解析からOSコマンドインジェクションが疑われます。URLエンコード文字「%20」はスペースを表し、リクエストヘッダのUser-Agentや他のパラメータにOSコマンドとして解釈される可能性がある文字列(例:「; ls -la」「| cat /etc/passwd」等)が含まれているケースです。OSコマンドインジェクションは、Webアプリケーションがユーザ入力をOSコマンドの引数として渡す処理を行っている場合に、悪意のある入力によってシステムコマンドを実行させる攻撃です。例えば、ファイル名を指定してコマンドを実行するような処理で「; rm -rf /」のような入力を埋め込むことでシステムへの不正操作が可能になります。HTTPヘッダに通常見られないコマンド区切り文字やシェルメタキャラクタ(セミコロン、パイプ、バッククォート等)が含まれることが攻撃の特徴です。

なぜ他の選択肢は違うのか

選択肢 ア
HTTPヘッダインジェクションは、HTTPレスポンスヘッダにユーザ入力を含む場合に、改行文字(%0d%0a)を注入することで新たなヘッダを追加したり、ボディを制御したりする攻撃です。%20(スペース)ではなく改行コードが特徴的な文字です。
選択肢 ウ
SQLインジェクションは、データベースへのSQLクエリにユーザ入力が適切にエスケープされずに組み込まれる場合の攻撃です。シングルクォート(')やSQL予約語(SELECT, DROP等)が特徴です。HTTPヘッダのパラメータよりもフォーム入力やURLパラメータで起きることが多いです。
選択肢 エ
XSS(クロスサイトスクリプティング)は、Webページに悪意のあるJavaScriptを注入する攻撃で、<script>タグ等のHTML/JSコードが特徴です。ブラウザ上でスクリプトが実行されるもので、OSコマンドとは異なります。

解くときのポイント

HTTPヘッダにセミコロン・パイプ等のシェルメタキャラクタ+%20(スペース)→OSコマンドインジェクションを疑う。