H30春SC午前Ⅱ問2
問2 Webサーバのログを分析したところ,Webサーバヘの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTPリクエストヘッダから推測できる,攻撃者が悪用しようとしている脆弱性はどれか。ここで,HTTPリクエストヘッダはデコード済みである。

  〔HTTPリクエストヘッダの部分〕
    GET /cgi-bin/submit.cgi?user=;cat /etc/passwd HTTP/1.1
    Accept:*/*
    Accept-Language: ja
    UA-CPU: x86
    Accept-Encoding: gzip, deflate
    User-Agent:(省略)
    Host: test, example.com
    Connect ion: Keep-Alive


ア HTTPヘッダインジェクション  イ OSコマンドインジェクション
ウ SQL インジェクション         エ クロスサイトスクリプティング
 注目すべきは、「;cat /etc/passwd HTTP/1.1」の部分です。catは、指定されたファイルの内容を表示するコマンドです。これにより、サーバのパスワードを取得しようとしています。OSのコマンドを不正に入力しているので、OSコマンドインジェクションが正解です。

正解:イ

補足します。OSコマンドインジェクションは、一例として、OSのコマンドを入力できる関数(例、system)などを利用している場合に危険が高くなります。
以下も参照
http://sm.seeeko.com/archives/65929324.html

問題文の以下の構文を見てみましょう。
GET /cgi-bin/submit.cgi?user=;cat /etc/passwd HTTP/1.1

このとき、?の後ろが、ユーザから入力される引数で、それが、OSコマンドが実行されるsystem関数やopen関数に引き渡されているとします。
たとえばuserにyamadaと入れた場合に、yamadaのディレクトリにあるファイル一覧が見れるようなコマンドが渡されるとします。

system("ls $user")

user=yamadaなら
実行されるコマンドは "ls yamada" になります。

そして、user=yamada;cat /etc/passwdなら
実行されるコマンドは "ls yamada;cat/etc/passwd"となり、passwdファイルの中身が表示されてしまいます。