SC情報処理安全確保支援士試験 午前Ⅱ

平成29年度春期 情報処理安全確保支援士 午前Ⅱ 問12

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

Webアプリケーションの騰簡性を悪用する攻撃手法のうち、 Webページ上で入力した文字列がPerlのsystem関数やPHPのexec関数などに渡されることを利用し、 不正にシェルスクリプトを実行させるものは、 どれに分類されるか。

選択肢

  1. ア
    HTTPヘッダインジェクション
  2. イ
    0Sコマンドインジェクション
  3. ウ
    クロスサイトリクエストフォージェリ
  4. エ
    セッションハイジャック
解き方のヒントを見る

午前II 問12:OSに命令を勝手に足される攻撃を見抜こう

Perl の `system` 関数や PHP の `exec` 関数に、チェックしていない入力をそのまま渡すと、攻撃者が用意した文字列まで OS のコマンドとして実行されてしまうことがあるよ。これは、アプリに頼んだつもりが、裏でパソコン本体の操作命令まで混ぜられてしまうイメージで、OS コマンドインジェクションに分類されるんだ。

この問題で問われていること

ポイントは、入力が最終的に何を動かしているかを見ることだよ。HTTP ヘッダを書き換える話なら HTTP ヘッダインジェクション、利用者に意図しない操作をさせる話なら CSRF。でも今回は `system` や `exec` で OS コマンドを実行しているから、OS コマンドインジェクションだと判断しよう。

OS Command Injection

passing untrusted input into functions like system or exec leads to OS command injection

untrusted input\nsystem or exec\nshell command execution\nOS command injection

確認ポイント

  • 実行先が OS コマンドかを見る。
  • exec/system を手掛かりにする。
  • CSRF などと混同しない。
正解と解説を見る

正解

イ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

HTTPヘッダインジェクションは不正解だよ。これは、Webサーバが返す封筒の宛名欄や注意書きに、改行などを使って勝手な情報を書き足すような攻撃なんだ。Cookieを勝手に付けたり別ページへ誘導したりする話で、今回のようにOSの命令を実行させる攻撃ではないよ。

選択肢イ(正解)

OSコマンドインジェクションが正解だよ。たとえるなら、窓口に『この書類を処理して』と頼む紙に、こっそり『金庫も開けて』みたいな余計な命令を書き足す感じだね。Perlのsystem関数やPHPのexec関数に入力文字が渡され、サーバ上で不正なOSコマンドやシェルスクリプトを実行させる攻撃なので、問題文にぴったり合うよ。

選択肢ウ

クロスサイトリクエストフォージェリは不正解だよ。これは、本人がログイン中なのを利用して、悪いサイトから勝手に送金ボタンを押させるような攻撃なんだ。今回のように、入力欄からOSの命令を混ぜてサーバに実行させる話とは別物だよ。

選択肢エ

セッションハイジャックは不正解だよ。これは、ログイン中の人の通行証みたいなセッションIDを泥棒が奪って、本人になりすます攻撃なんだ。今回の問題は、入力文字を使ってサーバにシェルスクリプトを実行させる話なので、合鍵を盗むタイプではないよ。

出典:独立行政法人 情報処理推進機構(IPA)平成29年度春期 情報処理安全確保支援士試験 午前Ⅱ 問12(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針