クロスサイトスクリプティング(XSS)
クロスサイトスクリプティング(XSS)の概要
英名 Cross-Site Scripting(XSS)
攻撃者がWebページ上で,任意のスクリプトを実行させることができる攻撃.
XSSの攻撃フロー
思いついたのをなんとなく描いただけなので実際に動くかはわからないです
攻撃方法
HTTPリクエストのパラメータ(URLのクエリストリングとかinputタグに入力する文字列とか)にスクリプトを仕込む事によって攻撃を行う.
スクリプトを仕込む場所によって,反射型や蓄積型,DOM型のように名称が異なる.
反射型XSS
英名 Reflected Cross-Site Scripting
HTTPリクエストにスクリプトを仕込ませて,そのHTTPレスポンスの中でスクリプトを実行させる攻撃.
URLの中にスクリプトを仕込むことで,URLを開くだけでスクリプトを実行させることができる.
反射型XSSの概要
蓄積型XSS
英名 Stored Cross-Site Scripting
Webページのデータベースにスクリプトを仕込ませて,データが参照された時にスクリプトを実行させる攻撃.
多くの人にデータを参照させると,多くの人にスクリプトを実行させることが出来る.
蓄積型XSSの概要
これが攻撃文字列だった時が怖いですね
DOM型XSS
英名 DOM-based Cross-Site Scripting
javascriptなどでHTML要素を生成する関数にスクリプトを仕込ませて,スクリプトを実行させる攻撃.
document.write | 好きなタグを生成できる. |
innnerHTML | scriptタグは生成できない. imgタグとかを使う |