ネットサーフィンをしていたら以下の記事を見つけた。ブラウザの解釈を誤魔化すことで生じる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は面白かった。
コメントを残す