Webエンジニア・ソーシャルメディアを研究している雄大です。
昨日はdocument.writeを使って、クロスサイトスクリプティングの簡単なサンプルを作った
http://yudai-stadium.com/blog/?p=146
ので、今回はinnerhtmlに挑戦してみました。
inner.php
<?php $input = "alert('XSS');"; $input = htmlspecialchars($input); ?> <html> <head> <title>サンプル</title> <script type="text/javascript" language="javascript"> <!-- function sample() { document.getElementById("url").innerHTML = "<?php echo $input; ?>"; } // --> </script> </head> <body> <h1>sample</h1> <span id="url"> <a href="javascript:sample();">クリック</a> </span> </body> </html>
出力をすると、
残念な事に、alertが表示されず…。
htmlspecialcharsの部分をコメントアウトしてもうまくいかず…。innerhtmlにはjavascriptで悪さが出来ないような仕様になっているのか…。
わかったら、追記します。
コメント