令和7年度 春期 応用情報技術者試験 午前 問36
テクノロジ/セキュリティWeb サーバのログを分析したところ,Web サーバへの攻撃と思われる HTTP リクエストヘッダーが記録されていた。次の HTTP リクエストヘッダーから推測できる,攻撃者が悪用しようとしていた可能性が高い脆弱性はどれか。ここで,HTTP リクエストヘッダー中の “%20” は空白を意味する。 〔HTTP リクエストヘッダーの一部〕 GET /cgi-bin/submit.cgi?user=;cat%20/etc/passwd HTTP/1.1 Accept: */* Accept-Language: ja UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: (省略) Host: test.example.com Connection: Keep-Alive
出典:令和7年度 春期 応用情報技術者試験 午前 問36
- アHTTP ヘッダーインジェクション(HTTP Response Splitting)
- イOS コマンドインジェクション
- ウSQL インジェクション
- エクロスサイトスクリプティング
正解:イ
解説
リクエスト行の user パラメタに「;cat%20/etc/passwd」,すなわちシェルのコマンド区切り文字「;」と UNIX コマンド「cat /etc/passwd」が埋め込まれています。CGI プログラムが入力値をそのままシェルに渡していると,この文字列が OS のコマンドとして実行され,パスワードファイルの内容が読み出されてしまいます。
選択肢ごとの解説
- ア誤り。HTTP ヘッダーインジェクションは改行コード(%0d%0a)を注入して応答ヘッダーを分割・偽装する攻撃ですが,このリクエストには改行の注入がありません。
- イ正しい。「;」によるコマンド連結と cat /etc/passwd という OS コマンドの注入なので,OS コマンドインジェクションを狙ったものです。
- ウ誤り。SQL インジェクションでは ' や UNION SELECT などの SQL 文の断片が注入されますが,このリクエストには含まれていません。
- エ誤り。クロスサイトスクリプティングでは <script> などのスクリプトが注入されますが,このリクエストには含まれていません。