応用情報技術者令和7年春期 午前問36

問36

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
  • HTTPヘッダーインジェクション(HTTP Response Splitting)
  • OSコマンドインジェクション
  • SQLインジェクション
  • クロスサイトスクリプティング

分類

テクノロジ系 » セキュリティ » 情報セキュリティ

正解

解説

HTTPリクエストヘッダーのうちで注目すべき部分は?user=;cat%20/etc/passwdです。

catはUNIX系のOSにおいてファイルの内容を出力するコマンドであり、/etc/passwdはユーザーのアカウント情報(ユーザー名・パスワード等)が記録されているファイルへのパスです。このため、cat%20/etc/passwdはシステムが管理するユーザーのアカウント情報の取得を意図したものと判断できます。

仮にWebアプリケーション内でOSのシェルを起動する関数を使用し、これにuserパラメータの値をそのまま実行時引数として渡した場合、OSのシェルには次のような文字列が与えられることになります。
本来実行されるコマンド名 ;cat /etc/passwd
;は命令の区切りを意味するため、上記の文字列は次の2つの命令として解釈されます。
本来実行されるコマンド名
cat /etc/passwd
この結果cat /etc/passwdが実行され、ブラウザの結果画面に秘密情報であるアカウント情報が表示されてしまうことになります。

この攻撃は、Webアプリケーションに任意のOSコマンドを実行させることを意図しているため、対応する脆弱性はOSコマンドインジェクションとなります。したがって「イ」が正解です。
  • HTTPヘッダーインジェクションは、利用者に返されるHTTPレスポンスの内容に、任意のヘッダーフィールドやボディ部を混入させる攻撃です。対象となるのはHTTPレスポンスヘッダーを動的に組み立てるWebアプリケーションです。
  • 正しい。OSコマンドを含むため、OSコマンドインジェクションの脆弱性を狙う攻撃です。;以外にも、| & ` ( )などは別コマンドの実行に使われるものとして特に警戒する必要があります。
  • SQLインジェクションの場合、攻撃コードにSQLの断片が含まれます。
  • XSSの場合、攻撃コードにJavaScriptの断片が含まれます。
Perlのexecopen、PHPのexecpassthruproc_openshell_execsystem、Pythonのos.systemsubprocess.callなどが該当します。
© 2010- 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop