ポイント●Webアプリケーションが持つクロスサイト・スクリプティングの脆弱性が利用されると,ユーザーのCookieが詐取されたりする攻撃が成り立つ。●Cookie情報の詐取と,ソーシャル・エンジニアリングやフィッシング(詐欺の手口)が組み合わさって,被害に及ぶケースもある ●このような被害を出さないようにするには,開発者は脆弱性の無いWebアプリケーションを開発する必要がある。ユーザーは,フィッシング詐欺などへの対策と同様に,「信頼のおけないリンクはむやみにクリックしない」「不審なURLにはアクセスしない」などの習慣を身につけておく必要がある |
![]() |
今回は,クロスサイト・スクリプティングの後編です。最初に「クロスサイト・スクリプティング前編」で確認した事項を簡単に復習しておきましょう。
|
前回の前提部分をまだ読んでいない方は,『脆弱性を利用した攻撃手法(2) --- Webアプリケーションを突く攻撃』と,『脆弱性を利用した攻撃手法(5)--クロスサイト・スクリプティング(前編)』に目を通しておいてください。
買い物サイトのCookieを他サイトに送る
Cookieは,基本的に発行したサイトしか利用できない,と勉強しました。例えば,今回の実験環境(前編参照)ですと,ユーザーPCが保持している「買い物サイト(192.168.1.12)」のCookieは,「買い物サイト(192.168.1.12)」しか利用できません。他サイトが,ユーザーPCが保持している買い物サイトのCookieに,直接アクセスすることはできないのです。
しかし,発行元(買い物サイト)から指示を受けた場合は,他サイトにCookie情報を送ってしまいます。試してみましょう。
悪意の情報収集サイト(192.168.1.17:以下悪意サイト)を準備します。このサイトは,送られてきた情報を受け取るように出来ています。
ユーザーは買い物サイトにアクセスして,ご注文内容の欄に図1のように記入し,購入ボタンを押します。ご注文内容欄の中身は,「192.168.1.17(悪意サイト)にCookieを書き込むスクリプトを実行」という内容です。
| |
図1●「192.168.1.17(情報収集サイト)にCookieを書き込むスクリプト実行」という内容を買い物サイトに送信する [画像のクリックで拡大表示] |
すると,この情報が買い物サイトに送られます(図2(1))。買い物サイト上で動作しているWebアプリケーションには脆弱性があり,<や>などの制御文字を変換せずに,そのまま送り返します(2)。ユーザーのWebブラウザは,これを制御文字と認識してスクリプトを実行します(3)。
| |
図2●買い物サイトから指示を受ける形になるため,買い物サイトのCookieを他のサイトへ送信してしまう [画像のクリックで拡大表示] |
本来の使い方だと,買い物サイト(192.168.1.12)で利用しているCookieを,他のサイト(192.168.1.17)に送信することはありませんが,今回のケースではCookieの発行元である買い物サイト(192.168.1.12)とのやり取りの中で指示された形になっています。このため,ブラウザは今利用している買い物サイトのCookieを192.168.1.17へ送信してしまいます(4)。
悪意サイトが情報を収集した様子が図3です。前編で確認した,ユーザーPCが利用している買い物サイトのCookieの中身が表示されています。
| |
図3●情報収集サイトがユーザーPCにあった買い物サイトのCookieを詐取した様子 [画像のクリックで拡大表示] |