ネットサーフィンをしていたら以下の記事を見つけた。ブラウザの解釈を誤魔化すことで生じるXSSパターンをPoCを書いて試してみた。
書いたコードは以下
tomoyk/xss-study: to study xss-patterns
以下にコードの簡単な説明を書いておく。
- a.html ::
href="が文字列として認識されてXSSが発火する。ダブルクオートの忘れは命取りになる。 - b.html :: 改行されると空白として扱われる。パラメータは空白として認識されない。
- c.html :: HTMLのパラメータとタグの区切りを
/で実現。<q/oncut=alert()で切り取り(Ctrl + X)を行うと発火する。 - d?.html ::
open()の第二引数 に指定した文字列が移動先のtop.nameに格納される。これを移動先からeval()することで発火。 - e.html ::
URLオブジェクトをslice()して文字を切り出してeval()で実行している。URLの扱いがイマイチつかみにくい。 - f.html ::
unescape()をeval()に食わせている。ポイントは%0aをつけることで改行させること。
参考: URL – Web API インターフェイス | MDN
マイナーな感じのXSSは面白かった。
コメントを残す