令和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
- アHTTP ヘッダーインジェクション(HTTP Response Splitting)
- イOS コマンドインジェクション
- ウSQL インジェクション
- エクロスサイトスクリプティング
答えと解説を見る
✓ これが正解イOS コマンドインジェクション
解説
区切り記号で命令を継ぎ足し、ファイルを読ませる狙いです。
記録されたリクエストで目を引くのは、問合せ文字列に渡された値の先頭にセミコロンが置かれ、その後ろにファイルの内容を表示する命令と、利用者情報を保持するファイルのパスが続いている点です。セミコロンは多くのシェルで命令の区切りとして働きます。そのため、受け取った値をそのままシェルに渡して外部の命令を呼び出す作りになっていると、区切りより後ろが別の命令として実行されてしまいます。攻撃者はこの性質を利用して、本来の処理に自分の命令を継ぎ足そうとしています。狙われているのは、利用者から受け取った文字列を検査しないまま命令の一部として組み立てている箇所です。どの脆弱性かを見分けるときは、埋め込まれた文字列がどの層の文法として意味を持つのかを確かめるのが近道になります。
ほかの選択肢はなぜ違うのか
- アHTTP ヘッダーインジェクション(HT…:応答のヘッダーに改行を紛れ込ませ、ヘッダーや本文を勝手に付け足す攻撃です。今回の記録に改行を表す文字は含まれておらず、狙いも応答を組み立て直すことではないので、当てはまりません。
- ウSQL インジェクション:データベースへの問合せ文を書き換えるために、引用符や条件式を紛れ込ませる攻撃です。今回埋め込まれているのはファイルの内容を表示する命令とそのパスであり、問合せ文の文法として意味をもつ材料ではありません。
- エクロスサイトスクリプティング:利用者のブラウザで動く記述を送り込み、閲覧した人の画面で実行させる攻撃です。狙う先は閲覧者の側になりますが、今回の記述はサーバの上でファイルを読み出そうとするもので、実行される場所が違います。
この問題の用語
- 脆弱性OSやソフトに残っている、攻撃の足掛かりになりうる弱点のこと。開発元が配る修正パッチを当ててふさぎます。
- ログいつ誰が何をしたかを、機器やソフトウェアが自動で残していく記録です。あとから出来事をたどれるので、事故の調査や不正の発見に使われます。
- 分析集めたデータを細かく分けて、何がどう関わっているかを読み取ること。量が増えるほど、扱う道具も考え方も変わります。
- HTTPWebブラウザとWebサーバがページをやり取りするための決まりごと。ブラウザが要求を送り、サーバが応答を返す形で通信します。
- クロスサイトスクリプティング出力処理の不備を突き、利用者のブラウザで攻撃者のスクリプトを動かす攻撃です。防ぐには、出力する文字を無害な形に置き換えます。
出典:令和7年度 春期 応用情報技術者試験 午前 問36
同じ用語が出る問題
- 令和7年度 秋期 午前 問43:ポートスキャンに関する問題(脆弱性)
- 令和6年度 春期 午前 問41:WAFによる防御が有効な攻撃(HTTP)
- 令和5年度 春期 午前 問34:トランスポート層に位置するもの(HTTP)
- 平成30年度 秋期 午前 問41(クロスサイトスクリプティング)
- 平成30年度 春期 午前 問37:クラッキングに関する問題(クロスサイトスクリプティング)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)