SkillStack
テクノロジ系1 / 25問

情報処理安全確保支援士試験 令和2年度 秋期 午前II 問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

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】イ

userパラメタの値には、セミコロンに続いて「cat%20/etc/passwd」が指定されています。「%20」を空白に戻すと「cat /etc/passwd」となります。セミコロンはUnix系OSのシェルでコマンドを区切る記号であり、catはファイルの内容を表示するコマンドです。したがって攻撃者は、CGIプログラムが入力値を適切に検査せずOSのコマンドとして実行することを期待し、パスワード関連情報が格納されたファイルを読み出そうとしています。これはOSコマンドインジェクションです。

アのHTTPヘッダインジェクションは誤りです。これは、改行コードなどを混入させてHTTPレスポンスヘッダを追加又は分割し、不正な応答やキャッシュ汚染などを引き起こす攻撃です。

ウのSQLインジェクションは誤りです。これは、入力値にSQL文の断片を混入させ、データベースを不正に検索、更新又は削除する攻撃です。

エのクロスサイトスクリプティングは誤りです。これは、Webページに不正なスクリプトを混入させ、閲覧者のブラウザ上で実行させる攻撃です。

【ポイント】 OSコマンドインジェクションでは、「;」「|」「&&」などのシェルの制御記号が手掛かりになります。 対策は、外部入力をOSコマンドに渡さない設計を基本とし、やむを得ない場合は許可リストによる検査や安全なAPIを利用します。 URLエンコードされた文字は、復号した後の内容まで確認することが重要です。

出典:令和2年度 秋期 情報処理安全確保支援士試験 午前II 問1
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める