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
Просто замените 'eval' на' document.write', вы увидите декодированный код. – jcubic