令和4年度 春期 午前Ⅱ 問1
攻撃手法
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 インジェクション
- エクロスサイトスクリプティング
答えと解説を見る
✓ これが正解イOS コマンドインジェクション
解説
セミコロンの後に OS のコマンドが続く、OS コマンドインジェクションです。
手掛かりは、リクエストの user パラメータに入っている値です。値はセミコロンで始まり、その後に cat /etc/passwd という OS のコマンドが続いています。%20 は空白を表すので、元の形は cat と /etc/passwd の間に空白が入ったコマンドです。シェルではセミコロンがコマンドの区切りになります。CGI がこの値をそのままシェルに渡すと、本来の処理の後に攻撃者のコマンドが実行され、パスワードファイルの中身が読まれるおそれがあります。このように、入力値を通じてサーバ上で任意の OS コマンドを実行させる攻撃が OS コマンドインジェクションです。似た名前の攻撃と見分けるには、差し込まれた文字列が何の構文なのかを確かめるのが確実です。
ほかの選択肢はなぜ違うのか
- アHTTP ヘッダインジェクション(HTT…:HTTP ヘッダインジェクションは、改行コードを差し込んでレスポンスヘッダを分割したり、偽のヘッダを加えたりする攻撃です。このリクエストには改行を表す %0d%0a などの痕跡が見当たりません。
- ウSQL インジェクション:SQL インジェクションなら、シングルクォートや OR 1=1 のような SQL の構文が差し込まれるはずです。ここで読もうとしている /etc/passwd は OS 上のファイルで、データベースへの問合せとは関係がありません。
- エクロスサイトスクリプティング:クロスサイトスクリプティングは、script タグなどを埋め込み、ページを見た利用者のブラウザでスクリプトを動かす攻撃です。このリクエストにはスクリプトを埋め込んだ跡がありません。
この問題の用語
- ログいつ誰が何をしたかを、機器やソフトウェアが自動で残していく記録です。あとから出来事をたどれるので、事故の調査や不正の発見に使われます。
- 分析集めたデータを細かく分けて、何がどう関わっているかを読み取ること。量が増えるほど、扱う道具も考え方も変わります。
- HTTPWebブラウザとWebサーバがページをやり取りするための決まりごと。ブラウザが要求を送り、サーバが応答を返す形で通信します。
- 脆弱性OSやソフトに残っている、攻撃の足掛かりになりうる弱点のこと。開発元が配る修正パッチを当ててふさぎます。
- クロスサイトスクリプティング出力処理の不備を突き、利用者のブラウザで攻撃者のスクリプトを動かす攻撃です。防ぐには、出力する文字を無害な形に置き換えます。
出典:令和4年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問1(改変:原典の図表をテキストに書き起こした)
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問20:ステータスコードに関する説明(HTTP)
- 令和7年度 秋期 午前Ⅱ 問16(HTTP)
- 令和3年度 春期 午前Ⅱ 問12:SQLインジェクションの問題(クロスサイトスクリプティング)
- 平成30年度 春期 午前Ⅱ 問2:HTTPリクエストヘッダの問題(クロスサイトスクリプティング)
- 平成27年度 秋期 情報セキュリティスペシャリスト試験 午前Ⅱ 問12(クロスサイトスクリプティング)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)