情報処理安全確保支援士試験 情報処理安全確保支援士試験 令和2年度 午前Ⅱ 問1: Web サーバのログを分析したところ,Web サーバへの攻撃と思われる HTTP リクエストヘッダが記録されていた。次の HTTP リクエストヘッダから推測でき
Web サーバのログを分析したところ,Web サーバへの攻撃と思われる リクエストヘッダが記録されていた。次の 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
問題本文
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
選択肢
- ア.HTTP ヘッダインジェクション(HTTP Response Splitting)
- イ.OS コマンドインジェクション
- ウ.SQL インジェクション
- エ.クロスサイトスクリプティング
解説
リクエスト中の user=;cat%20/etc/passwd は、CGIに渡す値にセミコロンとUNIXコマンドを混入させ、サーバ側でシェルに解釈させてpasswdを読み出そうとする典型例。シェルのメタ文字を悪用してOSコマンドを実行させるOSコマンドインジェクションに該当する。実務ではシェル呼び出しを避け、入力をエスケープ・許可リスト化して防ぐ。
選択肢ごとの解説
- ア.改行コードを注入してHTTP応答を分割する攻撃。本例はリクエストURLへのコマンド混入であり該当しない。
- イ.セミコロンに続けてcatコマンドを注入しシェルで実行させようとする点がOSコマンドインジェクションそのもので正しい。
- ウ.SQL文の断片を注入しDBを不正操作する攻撃で、本例にSQLの構文はなくOSコマンド注入なので誤り。
- エ.スクリプトを注入し閲覧者のブラウザで実行させる攻撃。サーバ側のコマンド実行を狙う本例とは異なる。
情報処理安全確保支援士試験 令和2年度 午前Ⅱ の過去問一覧へ戻る・問1