1_スクリプト攻撃とは?
Webサイトを表示するための言語である「HTML」にスクリプトと呼ばれるプログラムを埋め込むことで不正な挙動を誘発させる攻撃のことを指します。
※HTMLにスクリプトを埋込むことは、動的なコンテンツ(例:ニュースサイトのトップページ最新記事等が自動で更新されるなど)に必要な技術ですが、スクリプト攻撃は、この性質を悪用したものになります。
スクリプト攻撃のイメージ図
掲示板サイトに、迷惑なアラートが勝手に表示されるようなスクリプトの場合・・・
①掲示板への投稿するフォームに、スクリプトタグと呼ばれる構文を入力する
②Webサイトに脆弱性がある場合、送信されたスクリプトをサーバのデータベースに保存してしまう
③掲示板サイトに、通常の利用者がアクセスすると関係のないアラートが勝手に表示されてしまう

2_ではクロスサイトスクリプティングとは?
クロスサイトスクリプティングとは、スクリプト攻撃を実行するにあたって複数のサイトを跨ぐことから、この名称がつけられています。

そもそもなんで、攻撃者はクロスサイトスクリプティング攻撃を実行するのですか?

攻撃する理由は多岐にわたります。
セッション情報・個人データの窃取、ウェブサイトの改ざん(画面書き換え)、マルウェア配布などありますが、本質は、「利用者のブラウザ上で、勝手にJavaScriptを実行する」ことにあります。ここでは、代表的な例であるセッション情報窃取で説明したいと思います。

標的の通販サイトへのセッションを奪って、いろいろな情報をとってやりたいぜ・・・

うわ・・・いきなり危ない人出てきちゃった・・・

これは、私が作った教育用のテストプログラムなので安心してください・・・
万が一暴走したら私が消します

セッション情報を得るには・・・Cookie※1を手に入れるのが一番だ・・・
ようし・・・そこでクロスサイトスクリプティング攻撃だ!
※1 Cookieは、Webサイトがユーザーのブラウザに小さなデータを保存し、次回以降のリクエストで同じサイトに送信させる仕組みです
3_クロスサイトスクリプティングの流れ
3-1_スクリプトが埋め込まれたURL送付 ~ Webサーバへのリクエストまで
スクリプトを実行するまでの前段の流れとしては
①攻撃者が、悪意のあるスクリプトが含まれたURLをメールで送信する
②利用者が誤ってURLをクリックしてしまう
③通販Webサーバに、悪意のあるスクリプトが含んだリクエストが走ってしまう

3-2_Webページの返却 ~ Cookieの漏洩
④(通販Webサーバに脆弱性があるため)悪意のあるスクリプトが埋め込まれたWebページを返してしまう。
⑤利用者PCのブラウザでは、返送されたページを開いた際に悪意のあるスクリプトが実行されてしまう
⑥スクリプトの実行により、ブラウザが保持していたCookie情報が攻撃者が用意したサーバに送信されてしまう。

このようにサイトを跨って行われるためクロスサイトスクリプティングと呼ばれる

コメント