令和2年度 10月 情報処理安全確保支援士試験 午前Ⅱ 問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
出典:令和2年度 10月 情報処理安全確保支援士試験 午前Ⅱ 問1
- アHTTP ヘッダインジェクション(HTTP Response Splitting)
- イOS コマンドインジェクション
- ウSQL インジェクション
- エクロスサイトスクリプティング
正解:イ
解説
設問の HTTP リクエストヘッダでは,本来ユーザー名を渡すはずの user パラメタに “;cat%20/etc/passwd”,すなわち “;cat /etc/passwd” という OS コマンドの断片が埋め込まれています。“;” はシェル上でコマンドを連結する区切り文字であり,Web アプリケーションがこの値をそのまま OS のシェルコマンドに渡して実行してしまうと,本来意図しない cat コマンドが実行され,/etc/passwd の内容が読み出されてしまいます。このように,外部から渡されたパラメタを検証せずに OS コマンドの一部として実行してしまう脆弱性を悪用する攻撃が OS コマンドインジェクションです。
選択肢ごとの解説
- ア誤り。HTTP ヘッダインジェクション(HTTP Response Splitting)は,改行コードなどを含む入力によってレスポンスヘッダを分割・偽装する攻撃であり,本設問のように OS コマンドの断片をパラメタに埋め込む手口とは異なります。
- イ正しい。パラメタに “;cat /etc/passwd” という OS コマンドの断片が含まれており,これは OS コマンドインジェクションを狙ったものです。
- ウ誤り。SQL インジェクションは,データベースへの問合せ文(SQL 文)の断片をパラメタに埋め込む攻撃であり,本設問のリクエストには SQL 文の要素は含まれていません。
- エ誤り。クロスサイトスクリプティングは,スクリプトタグなどを含む入力によって被害者のブラウザ上で不正なスクリプトを実行させる攻撃であり,本設問のリクエストにはスクリプトの要素は含まれていません。