ピンボールアクエリオン

クロスサイトスクリプティングXSSCross Site Scripting

クロスサイトスクリプティングとは、利用者が入力した内容を表示するような構成のWebサイトに存在する欠陥を悪用して、攻撃者が用意した悪意のあるスクリプトを利用者の元に送り込んで実行させる攻撃手法。

 

SNSECサイトのように閲覧者が送信したデータを何らかの形でコンテンツの一部として表示する機能を含むWebサイトが標的となる。入力内容のチェックが甘い場合に、攻撃者の仕掛けたスクリプト(Webページ上で実行される簡易プログラム)が閲覧者のコンピュータで実行される。

典型的な攻撃例は以下の通りである。まず、標的サイトには入力フォームがあり、閲覧者の入力を受け付けてサイト内の別のページに表示する。入力内容が「Hello World」の場合「//標的サイト/message.cgi?text=Hello+World」というURLでアクセスするものとする。

フォームの受け付けプログラムには入力内容のチェックに不備(XSS脆弱性)があり、「Hello+World」の部分が実行可能なJavaScriptコード断片であってもそのままブラウザへ送り返し、内容を表示した閲覧者のコンピュータ上で実行されてしまう。

攻撃者はこのサイトの利用者に向けて攻撃用のサイトを用意し、標的サイトに向けてリンクを作成する。リンク先のURLには「//標的サイト/message.cgi?text=%3Cscript%3Ealert%28%22Hello+World%22%29%3B%3C%2Fscript%3E」のように、スクリプトとして解釈・実行される文字列を含ませておく。

閲覧者が攻撃用サイトのリンクを経由して標的サイトを訪れると、攻撃者によって仕込まれていたスクリプトが標的サイト上のものとして動作し、様々な攻撃が実行される。サイトをまたいでスクリプトが移転・実行されることが「クロスサイト」の名称の由来となっている。

この攻撃により、閲覧者は標的サイトの発行したCookieデータなどを攻撃者に盗み取られたり、攻撃者の用意した偽サイトに誘導されて個人情報アカウント情報などを攻撃者に送信してしまったり、標的サイト上で意図せず自動的に特定の操作を実行させられてしまうなどの被害を受ける。

現在では様々な攻撃のバリエーションが知られており、必ずしも攻撃者がサイトを用意する必要はなくなっている。攻撃者が用意したスクリプトを標的サイトのものとして実行させられてしまう攻撃全般をクロスサイトスクリプティングと呼んでいる。

他の辞典による解説 (外部サイト)