平成30年春期試験問題 午前Ⅱ 問2
問2解説へ
Webサーバのログを分析したところ,Webサーバへの攻撃と思われるHTTPリクエストヘッダーが記録されていた。次のHTTPリクエストヘッダーから推測できる,攻撃者が悪用しようとしている脆弱性はどれか。ここで,HTTPリクエストヘッダーはデコード済みである。
〔HTTPリクエストヘッダーの部分〕
〔HTTPリクエストヘッダーの部分〕
GET /cgi-bin/submit.cgi?user=;cat /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
Accept: */*
Accept-Language: ja
UA-CPU: x86
Accept-Encoding: gzip,deflate
User-Agent: (省略)
Host: test.example.com
Connection: Keep-Alive
- HTTPヘッダーインジェクション
- OSコマンドインジェクション
- SQLインジェクション
- クロスサイトスクリプティング
正解 イ問題へ
分野 :テクノロジ系
中分類:セキュリティ
小分類:情報セキュリティ
中分類:セキュリティ
小分類:情報セキュリティ
広告
解説
HTTPリクエストヘッダーのうちで注目すべき部分は?user=;cat%20/etc/passwdです。
catはUNIX系のOSにおいてファイルの内容を出力するコマンドであり、/etc/passwdはユーザーのアカウント情報(ユーザー名・パスワード等)が記録されているファイルへのパスです。このため、cat%20/etc/passwdはシステムが管理するユーザーのアカウント情報の取得を意図したものと判断できます。
仮にWebアプリケーション内でOSのシェルを起動する関数※を使用し、これにuserパラメータの値をそのまま実行時引数として渡した場合、OSのシェルには次のような文字列が与えられることになります。
この攻撃は、Webアプリケーションに任意のOSコマンドを実行させることを意図しているため、対応する脆弱性はOSコマンドインジェクションとなります。したがって「イ」が正解です。
catはUNIX系のOSにおいてファイルの内容を出力するコマンドであり、/etc/passwdはユーザーのアカウント情報(ユーザー名・パスワード等)が記録されているファイルへのパスです。このため、cat%20/etc/passwdはシステムが管理するユーザーのアカウント情報の取得を意図したものと判断できます。
仮にWebアプリケーション内でOSのシェルを起動する関数※を使用し、これにuserパラメータの値をそのまま実行時引数として渡した場合、OSのシェルには次のような文字列が与えられることになります。
本来実行されるコマンド名 ;cat /etc/passwd
;は命令の区切りを意味するため、上記の文字列は次の2つの命令として解釈されます。本来実行されるコマンド名
cat /etc/passwd
この結果cat /etc/passwdが実行され、ブラウザの結果画面に秘密情報であるアカウント情報が表示されてしまうことになります。cat /etc/passwd
この攻撃は、Webアプリケーションに任意のOSコマンドを実行させることを意図しているため、対応する脆弱性はOSコマンドインジェクションとなります。したがって「イ」が正解です。
- HTTPヘッダーインジェクションは、利用者に返されるHTTPレスポンスの内容に、任意のヘッダーフィールドやボディ部を混入させる攻撃です。対象となるのはHTTPレスポンスヘッダーを動的に組み立てるWebアプリケーションです。
- 正しい。OSコマンドを含むため、OSコマンドインジェクションの脆弱性を狙う攻撃です。;以外にも、| & ` ( )などは別コマンドの実行に使われるものとして特に警戒する必要があります。
- SQLインジェクションの場合、攻撃コードにSQLの断片が含まれます。
- XSSの場合、攻撃コードにJavaScriptの断片が含まれます。
広告