◾️問題
Webサーバのログを分析したところ,Webサーバへの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTPリクエストヘッダから推測できる,攻撃者が悪用しようとしていた脆弱性はどれか。ここで,HTTPリクエストヘッダ中の"%20"は空白を意味する。
〔HTTPリクエストヘッダの一部〕
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インジェクション
- エ クロスサイトスクリプティング
◾️正解
イが正解。
?user=;cat%20/etc/passwdの部分に着目すると、以下のように考えられるため。
・catはOSの指定のファイルを出力するコマンド
・/etc/passwdはユーザーのアカウント情報(ユーザー名、パスワード等)が記録されているファイル
・cat /etc/passwdはユーザーのアカウント情報を画面に表示する操作
◾️前提知識
ア HTTPヘッダインジェクション(HTTP Response Splitting)は、ウェブアプリケーションにおいて、不正なHTTPヘッダが注入されるセキュリティ上の脆弱性のことを指す。
エ クロスサイトスクリプティングとは、スクリプトをサイトに送り込み、スクリプトを含むHTMLを出力し、ブラウザ上で実行させる攻撃。
例:
HTTPヘッダインジェクションの以下は簡単なシナリオです。
この例では、User-Agent ヘッダに対するインジェクションを考えます。User-Agent ヘッダはクライアントが使用しているソフトウェアやデバイスに関する情報を含んでいます。
通常のUser-Agentヘッダ
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
攻撃者が User-Agent ヘッダに不正な情報を注入する例:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) <script>alert('XSS Attack!');</script> Chrome/91.0.4472.124 Safari/537.36
この例では、<script> タグを使ってクロスサイトスクリプティング(XSS)攻撃を仕掛けています。攻撃者は <script> タグ内に任意のJavaScriptコードを挿入し、これが実行されることで悪意のある動作を引き起こす可能性があります。
◾️参考資料
安全なウェブサイトの作り方 - 1.7 HTTPヘッダ・インジェクション | 情報セキュリティ | IPA 独立行政法人 情報処理推進機構
https://www.ipa.go.jp/security/vuln/appgoat/ug65p900000198gm-att/000062612.pdf