清除 PHP 恶意代码 终于搞定
Remove PHP malware最近发现自己管理的一个服务器里PHP网站全都被注入了恶意代码,每个PHP文件的开头都被注入,代码片段如下:
一看就是被加密过的PHP代码,我没有详细去解密,具体应该是被指向到某个恶意网站的功能;
而且整个服务器中的所有PHP文件均被感染,如果逐个删除,工作量巨大,当然要想想批量删除的方法;
在国外的著名技术交流网站stackexchange.com终于找到了解决方法!
http://stackoverflow.com/questions/24860865/does-somebody-knows-what-is-this-code-virus-in-php
通过搜寻特征文件,来批量删除的脚本文件。
详细代码如下:
$i = $j = $k = 0; $ccontent = file_get_contents(‘./yoyo.txt’); // this file contains the malware code
function scanAndRemove($dir) { global $ccontent, $i, $j, $k;
if (!is_readable($dir)) { return; }
foreach(scandir($dir) as $file) { if(in_array($file, array(‘.’, ‘..’))) { continue; }
$path = $dir . DIRECTORY_SEPARATOR . $file;
if (is_dir($path)) { scanAndRemove($path); } else { $k++; if (substr($file, -4) == ‘.php’) { $j++; $source = file_get_contents($path); $source = str_replace($ccontent, ”, $source, $count);
if($count) { $i++; //echo $path . PHP_EOL; file_put_contents($path, $source); } } } } }
scanAndRemove(‘/home/wwwroot’);
echo ‘Total files: ‘ . $k . PHP_EOL; echo ‘Total PHP files: ‘ . $j . PHP_EOL; echo ‘Total infected files: ‘ . $i;
一分钟不到,搜寻到2万个被感染的文件,批量整体删除,搞定;
然后马上修改Linux密码,以及MySQL密码,以防再次出现问题。
耗时一个下午解决这个问题,不过解决完之后真是大快人心哈哈哈,祝愿各位 2016 年元宵节快乐!