令和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
出典:令和4年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問1
- アHTTP ヘッダインジェクション(HTTP Response Splitting)
- イOS コマンドインジェクション
- ウSQL インジェクション
- エクロスサイトスクリプティング
正解:イ
解説
リクエストの URI 中に “user=;cat%20/etc/passwd” とあり,パラメータの区切り文字であるセミコロン(;)に続けて OS のコマンド(cat /etc/passwd)を埋め込んでいます。Web アプリケーションが外部からの入力をそのままシェルに渡して実行してしまう脆弱性がある場合,このように別のコマンドを連結して実行させることができてしまいます。これは OS コマンドインジェクションを狙ったリクエストです。
選択肢ごとの解説
- ア誤り。HTTP ヘッダインジェクションは,改行コードなどを注入してレスポンスヘッダを操作する攻撃であり,このリクエストのようにシェルコマンドを連結する手口とは異なります。
- イ正しい。“;cat%20/etc/passwd” はシェルのコマンド区切り文字に続けて cat コマンドを埋め込んでおり,OS コマンドインジェクションを試みていると推測できます。
- ウ誤り。SQL インジェクションは SQL 文の構文を操作する攻撃であり,cat コマンドのような OS コマンドの実行を狙うものではありません。
- エ誤り。クロスサイトスクリプティングは HTML や JavaScript をレスポンスに埋め込ませる攻撃であり,このリクエストの内容とは異なります。