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