有人能解释这个javascript漏洞吗? var a=['document','window',String]; 变量b='108 111 99 97 116 105 111 110'; 风险值c='%68%74%74%70%73%3a%2f%2f%77%77%2e%74%75%6d%62%6c%72%2e%63%6f%6d'; 变量d='ZnJvbUNoYXJDb2Rl'; 变量e='ZGVJB2RLVJQ29TCG9UZW50'; 变量f='1c2o3n4s5o6l7e8',g='6a5l4e3r2t1'; 功能x(s){ var ss=s.split(“”);s=“”; 对于(var i=0;i

有人能解释这个javascript漏洞吗? var a=['document','window',String]; 变量b='108 111 99 97 116 105 111 110'; 风险值c='%68%74%74%70%73%3a%2f%2f%77%77%2e%74%75%6d%62%6c%72%2e%63%6f%6d'; 变量d='ZnJvbUNoYXJDb2Rl'; 变量e='ZGVJB2RLVJQ29TCG9UZW50'; 变量f='1c2o3n4s5o6l7e8',g='6a5l4e3r2t1'; 功能x(s){ var ss=s.split(“”);s=“”; 对于(var i=0;i,javascript,reverse-engineering,malware,exploit,malware-detection,Javascript,Reverse Engineering,Malware,Exploit,Malware Detection,我是一个新的漏洞,想知道这个漏洞做什么? 如何对这些漏洞进行分析,了解这些事情的最佳方法是什么? 我知道逆向工程和装配的基础知识,但我无法理解这一点。它执行以下操作: document[“location”]=windows[“decodeURIComponent”](“https://www.tumblr.com“” 这会将您重定向到tumblr.com 这纯粹是对代码的混淆 var s = a[0] + '["' + x(b) + '"]=' + a[1] + '["' + atob(e)

我是一个新的漏洞,想知道这个漏洞做什么? 如何对这些漏洞进行分析,了解这些事情的最佳方法是什么?
我知道逆向工程和装配的基础知识,但我无法理解这一点。

它执行以下操作:

document[“location”]=windows[“decodeURIComponent”](“https://www.tumblr.com“”

这会将您重定向到tumblr.com

这纯粹是对代码的混淆

var s = a[0] + '["' + x(b) + '"]=' + a[1] + '["' + atob(e) + '"]("' + c + '")';
    ^   ^             ^              ^             ^                  ^
Payload=document["   (1)      "]= windows    [base64 encoded   ]( url http encoded string)
下面将ascii字符代码转换为字符串

(1): for (var i = 0; i < ss.length; i++) s += a[2][atob(d)](ss[i])
(1):对于(var i=0;i
这样做的主要目的是为了躲避寻找XSS的软件,比如一些防病毒软件。然而,这只是一个有效负载,真正的漏洞将是一个漏洞,允许您在合法网站上插入此漏洞,以重定向到另一个网站,该网站可能是一个克隆,其URL稍有不同,以欺骗他人。但更准确的说法是,在电视上质疑这一点


Node是一个很好的工具,可以评估不安全的浏览器Javascript,如果您将某些东西(如
atob
)替换为自制的等价物。

我编辑了您的问题,删除了“在浏览器中运行此漏洞”按钮,我希望你不介意。Stackoverflow不是一个要求人们解释长代码块的好地方——特别是当代码被混淆时——你可以尝试一个关于你不理解的代码的一小部分的最具体的问题。只要用
文档替换
eval
。写
你就会看到解码的代码。这几乎是不可能的甚至弄坏了。只需遍历并替换几个值,就可以得到整个脚本。这根本不是利用漏洞,它只是一个重定向到Tumblr的非常愚蠢的脚本,可能是
window.location=”https://www.tumblr.com“
,这就是它的结局。