???????????
??????????Щ?????б?????????????????????????????????????????????????????????? 1ms ?????
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????й????м?????????????仯?????????????????????????????????? setAttribute ???????????????????????????????????????????????????????????ο?????????????????????????????

<div style="width:; height:; position:absolute" onmouseover="console.log('xss')"></div>
<script>
function hookEvent(onevent) {
document.addEventListener(onevent.substr(2)?? function(e) {
var element = e.target;
// ?????????????
var flags = element['_flag'];
if (!flags) {
flags = element['_flag'] = {};
}
if (typeof flags[onevent] != 'undefined') {
return;
}
flags[onevent] = true;
if (element.nodeType != Node.ELEMENT_NODE) {
return;
}
var code = element.getAttribute(onevent);
if (code && /xss/.test(code)) {
element[onevent] = null;
console.log('??????????:'?? code);
}
}?? true);
}
for (var k in document) {
if (/^on/.test(k)) {
hookEvent(k);
}
}
</script>
Run
???????????????????????ж???????????е?????????????ζ????CPU ??????????????????
??????????? XSS ?????????飬???????????????????
??????????????????????????????? String.fromCharCode??$.getScript ??????? XSS ??????????????????????????? alert(/xss/)??alert(123) ??Щ?????????????????У????????????????????????????????
???????????????????????? XSS ??????????????????????????á????????????????? BUG ????ú???????????????????????????
???????????????
???????????????????????ж????????????????????????????????????????????????С????????????????????????????????洢?????????????????????????????????????????
????<img src="*" onerror="window['ev'+'al'](this.align)" align="alert('a mass of code...')">
???????????????????????????????????????????? eval??setTimeout('...') ????????????????????????á?
????????????????????????????????????????????????????????????????????????????
????<img src="*" onerror="$['get'+'Script'](...)">