???????????????е??????????????飬???????????????????Щ?????????????????·?????????
?????????飺??? MutationObserver ??衣
?????????飺??? API ??????????·???????
??????????????????????????ó?????? API Hook?????????????????????δ?????????????κ? CPU ????????д???????????????????????????
??????????????????棬?????????????????????????????????е?????????????????????
?????????????????????????????????????????????????????????????ж?????????????????????????????????????????????麯????У?????????ε????????棬?????????????
???????? JavaScript ??????????????κ????????????????????????????????????????????????
????JavaScript ????С??
????????????????????????????????????????????????????????? setAttribute ??????????????

 

// ??????????
var raw_fn = Element.prototype.setAttribute;
// ?????????
Element.prototype.setAttribute = function(name?? value) {
// ??????????
if (this.tagName == 'SCRIPT' && /^src$/i.test(name)) {
if (/xss/.test(value)) {
if (confirm('????????????飺 ' + url + ' ????????')) {
return;
}
}
}
raw_fn.apply(this?? arguments);
};
// ???????
var el = document.createElement('script');
el.setAttribute('SRC'?? 'http://www.etherdream.com/xss/alert.js');
document.body.appendChild(el);
Run

???????????????????????????????? setAttribute ???????????????????????????????????????????????
????????й?
????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????
????var el = document.createElement('script');
????// ???????????
????raw_fn.call(el?? 'SRC'?? 'http://www.etherdream.com/xss/alert.js');
????document.body.appendChild(el);
????Run