開発
2015/3/21
2014 ADCTF 2日目 alert man
beko
サイトに飛んでみると入力ホームが現れる。
問題はアラート(XSS)を出すという問題。
そこに入力すると自分が入力したものと同じものがbodyのid=1に追加されていく仕様になっている。
いつも通り最初にこれを試す
<script> alert(1) </script>
これを入力すると空白がかえってくる。そこで”script”タブが使えないということが分かった。
次に、
javascript:alert(1);
を試す。でもこれは、文字として認識されてしまってjavascriptが動かなかった。
ここで、タグが使えるかどうかを確認するために
<img src=x >
これを実行したら画像が壊れた。あとは、簡単
<img src=x onerror=alert(1)>
これで1を出力出来た。
同じ要領でXSSを出力させようと思ったら、できない
なんでと思って、ソースを見るそしたら、
t = tweet.replace(/[‘”]/g, ”);
がでてきた。これによると、ダブルコーテーションとシングルコーテーションはなくなるようなので変更
<img src=x onerror=alert(/XSS/.source)>
これでXSSできてflagもゲット出来た。