これは、脆弱なJavaScriptコードです。
_$(document).ready(function(){
var payload = unescape(document.location.hash.substr(1));
$(payload);
document.body.innerText = "The payload is: " + payload;
});
_
この入力でそれを悪用しようとしたとき
_http://localhost/xss.html#<img src=x onerror=alert(0)>
_
アラートが表示され、うまくいきました。私の場合は少し異なります、エクスプロイトを防ぐ小さなフィルターがあります:
_$(document).ready(function(){
var payload = unescape(document.location.hash.substr(1));
payload = payload.split('=')[0]; // <------- The new filter
$(payload);
document.body.innerText = "The payload is: " + payload;
});
_
"="文字の後のすべてを切り捨てます。つまり、属性を挿入できません。私はすでに以下を試しましたが、うまくいきませんでした:
onerror&equal;alert()
)<script>alert(0);</script>
誰でも私がこのフィルターをバイパスするために何ができるか考えていますか?
この時点で、最新のブラウザーを使用したこのフィルターには、簡単な/テキストブックのバイパスがないと言っても安全だと思います。このコードスニペットを、XSSに習熟していると考える友人や同僚のグループと共有しましたが、バイパスを構築することはできませんでした。