XSS Quizの#11.
a threadless kite - 糸の切れた凧(2008-02-06)
これ、私です。yamagataさん、ありがとう。
でも、この答えを見ても実はすぐに分からなかったのです。
3. NULL をはさんでみる。「%3Csc%00ript%3E」 ⇒「
自分は、I.Eのみで有効である
<scrip t>alert();</scri pt>
系に固執してたんですね。で、「んー、どうやって制御文字のLFをPOSTで送るんだー!?」と3時間ほど悩みまくり。ローカルにHTML保存して色々やりたくってた。
で、答えに「NULL をはさんでみる。「%3Csc%00」ってあったから「えー、それができねぇんだよなぁ」と思いつつ、次の「数値文字参照」っていうのに着目。そういえば、以前なんかの海外製CMSでHTMLが全て数値文字参照になっててソースコード見てもさっぱり分からないで難儀した記憶が。
そこで、ローカルHTMLにて
<script>alert(document.domain);</script>
ってしてみる。・・・・alertは出ない。
あー、ダメじゃん・・・タグ内の数値文字参照は無視されるんだなぁ。・・・ということに気がつくまで更に一時間弱。
?タグ内ではなくて、タグ名の数値文字参照は無視されるだけなのか?
ということに思い至り、
<a href="javascript:alert(document.domain);">hoge</a>
としてみる。ローカルHTMLに保存してブラウザで閲覧。おぉ!なんという嬉しさよ。