-3
var a = ['document', 'window', String];
var b = '108 111 99 97 116 105 111 110';
var c = '%68%74%74%70%73%3a%2f%2f%77%77%77%2e%74%75%6d%62%6c%72%2e%63%6f%6d';
var d = 'ZnJvbUNoYXJDb2Rl';
var e = 'ZGVjb2RlVVJJQ29tcG9uZW50';
var f = '1c2o3n4s5o6l7e8', g = '6a5l4e3r2t1';
function x(s) {
var ss = s.split(' '); s = '';
for (var i = 0; i < ss.length; i++) s += a[2][atob(d)](ss[i]);
return s;
}
console = null;
function y(s) {
var ss = '';
for (var i = 1; i < s.length; i+= 2) ss += s[i];
return ss;
}
a[1][y(f)] = a[1][y(g)] = null;
var s = a[0] + '["' + x(b) + '"]=' + a[1] + '["' + atob(e) + '"]("' + c + '")';
eval(s);
我是新來的漏洞利用者,想知道這個漏洞利用做什麼? 如何分析這些漏洞,瞭解這些事情的最佳途徑是什麼? 我知道逆向工程和裝配的基本知識,但我無法弄清楚這一點。任何人都可以解釋這個JavaScript的利用?
我修改了您的問題以刪除「在您的瀏覽器中運行此漏洞」按鈕,我希望您不介意。 –
Stackoverflow不是讓人們解釋長塊代碼的好地方 - 尤其是當代碼被混淆時 - 您可能會嘗試關於您不瞭解的一小部分代碼的最具體問題。 – Quentin
只需用'document.write'替換'eval'就可以看到已解碼的代碼。 – jcubic