我爲another recent stackoverflow question創建了這個函數,你需要找到一個受感染的php文件,在頂部或底部你會看到一個被評估過的base_64編碼字符串(它在每個文件中最有可能不同,所以尋找一個特定的字符串無法正常工作),但這個功能,如果是因爲我懷疑,它會貫穿整個項目循環並刪除受感染的代碼注入字符串:
<?php
error_reporting(E_ALL);
//A Regex to match the infection string
$find='<\?php @error_reporting\(0\); if \(!isset\((.*?)\?>';
//Do It!
echo cleanMalware('./',$find);
function cleanMalware($path,$find){
$return='';
ob_start();
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_dir($path.'/'.$file)){
$sub=cleanMalware($path.'/'.$file,$find);
if(isset($sub)){
echo $sub.PHP_EOL;
}
}else{
$ext=substr(strtolower($file),-3);
if($ext=='php'){
$filesource=file_get_contents($path.'/'.$file);
//The cleaning bit
echo "The infection was found in the file '$path/$file and has been removed from the source file.<br>";
$clean_source = preg_replace('#'.$find.'#','',$filesource);
// $clean_source = str_replace($find,'',$filesource);
file_put_contents($path.'/'.$file,$clean_source);
}else{
continue;
}
}
}
}
closedir($handle);
}
$return = ob_get_contents();
ob_end_clean();
return $return;
}
?>
好運
這也許應該被移動[網站管理員](http://webmasters.stackexchange.com/) – PenguinCoder
找到感染的PHP文件之一,你看在頂部或底部有base_64編碼蜇逃避,這是一個共同的東西最近,因爲它似乎WordPress的某些方面是不安全的。用受感染的代碼更新您的問題。 –
@ kelvin1986所以你有一個編碼的字符串在你的PHP文件的頂部或底部? –