SC情報処理安全確保支援士試験 午前Ⅱ

令和4年度春期 情報処理安全確保支援士 午前Ⅱ 問1

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

Webサーバのログを分析したところ、 Webサーバへの攻撃と思われるHTTPリクエストヘッダが記録されていた。 次のHTTPリクエストヘッダから推測できる、 攻撃者が悪用しようとしていた可能性が高い脆弱性はどれか。ここで、 HTTPリクエストヘッダ中の “"%20" は空白を意味する。

選択肢

  1. ア
    〔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. イ
    HTTPヘッダインジェクション (HTTP Response Splitting) イ0Sコマンドインジェクション
  3. ウ
    SOLインジェクション
  4. エ
    クロスサイトスクリプティング
解き方のヒントを見る

HTTPリクエストに混ざったOSコマンドを見抜こう

HTTPリクエストの中に`;cat /etc/passwd`みたいな文字列が入っていたら要注意だよ。これは、Webアプリに渡した入力値をそのままシェルで実行させて、サーバ上のOSコマンドを勝手に動かそうとしている可能性が高いんだ。つまり、狙われているのはOSコマンドインジェクションだよ。

この問題で問われていること

この問題では、入力値がSQL文やHTMLに混ざる話ではなく、OSコマンドとして実行される場面を見抜けるかがポイントだよ。たとえるなら、受付で名前を書くだけのはずなのに、こっそり『金庫を開けて』という命令まで書き足しているようなものなんだ。

攻撃文字列の意味

`;` によるコマンド連結で `/etc/passwd` を読ませようとしている点が典型的です。

URL パラメータ\n-> `; cat /etc/passwd`\n-> OS コマンド実行狙い

確認ポイント

  • SQL 文断片ではありません。
  • XSS 用スクリプトでもない。
  • OS コマンドインジェクションを選ぶ。
正解と解説を見る

正解

イ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは不正解だよ。HTTPヘッダインジェクションは、サーバが返す「返事の伝票」に余計な行を書き足してしまうような攻撃だよ。今回あやしいのはヘッダを書き換える話ではなく、URLのuserに「;cat /etc/passwd」というOSの命令っぽいものを混ぜている点なんだ。

選択肢イ(正解)

これが正解だよ。userの値に「;cat /etc/passwd」が入っていて、これはLinuxなどでファイルを表示する命令だよ。たとえるなら、窓口で名前を書く欄に「ついでに金庫の中身を見せて」と命令を書き込む感じ。アプリが入力をそのままOSに渡すと、別の命令として実行される危険があるので、OSコマンドインジェクションだよ。

選択肢ウ

これは不正解だよ。SQLインジェクションは、データベースへの問い合わせ文に悪い命令を混ぜる攻撃だよ。たとえるなら、図書館の検索用紙に「この本を探して」ではなく「貸出記録を全部見せて」と書き足す感じ。今回はSQLの断片ではなくOSの命令が入っているので違うよ。

選択肢エ

これは不正解だよ。クロスサイトスクリプティングは、利用者のブラウザで悪いスクリプトを動かす攻撃だよ。たとえるなら、掲示板にいたずらメモを貼って、見た人のブラウザに勝手な動きをさせる感じ。今回の「cat /etc/passwd」はブラウザで動くJavaScriptではなく、サーバ側OSへの命令なので違うよ。

出典:独立行政法人 情報処理推進機構(IPA)令和4年度春期 情報処理安全確保支援士試験 午前Ⅱ 問1(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針