娘的,被挂马了…

印象中,最近访问自己 Blog 某个页面的时候在页脚看到过以下代码,一直以为是某个插件的问题,都没有引起重视。

Not Found
The requested URL /plugin/api/get_link.php was not found on this server.

今天才发现不仅是一个页面的问题,整站都有这个问题,才决定要找找是哪个插件的问题,真是不找不知道,一找吓一跳。首先想到的是将所有插件都禁止掉,再一个一个启动来排查,发现把所有插件禁止掉后,还是有同样的问题。

然后又想到可能是模板的问题,试着换回默认模板后问题解决了。因为问题是在页脚位置,开始检查使用模板的页脚文件源码,看了好几遍都没有发现有啥异常啊。

接着试着用 “get_link.php wordpress” 为关键字 Google,没找到解决办法,反而发现有很多网站都有类似的问题,继续汗… 这才想到不是个案。再次打开模板的 footer.php 文件与默认模板的代码对比,这次发现了我使用的模板中,多了一句到 /wp-includes/wp-vars.php 的引用,这名字看起来没啥问题啊,下载回来看看吧。将下载下来的 wp-vars.php 用 vim 打开,看到 eval(base64_decode 我的心就咯噔一下,明显是被挂马了…

赶紧用 wp-vars.php 为关键字搜索了一下,发现果然是被挂马了,接着在服务器上运行下面的命令,娘的,改的文件还不少:

1
2
3
4
5
6
7
$ find ./ -iname "*.php" | xargs grep -H -n "eval(base64_decode"
./wp-admin/includes/users.php:6:eval(base64_decode("$d"));
./wp-admin/includes/class-wp-filesystem-check.php:3:eval(base64_decode("$dd"));
./wp-includes/images/crystal/license.php:3:eval(base64_decode("$dd"));
./wp-includes/common.php:3:eval(base64_decode("$dd"));
./wp-includes/class-read.php:6:eval(base64_decode("$d"));
./wp-content/themes/classic/archive.php:3:eval(base64_decode("$dd"));

没辙,重装吧。把服务器上所有上传文件外的 php 文件全部删除掉,官方下了一份干净的 wordpress 重装了,历时一个小时,这里顺便 BS 一下 ixweb FTP 上传的蜗牛速度…

重装后问题解决了,不过起源还没找到,是某个插件的问题,还是 ixweb 服务商的服务器漏洞,还需要研究。有结果了我再更新。

鉴于解决问题前我用 get_link.php 为关键字搜索出来那么多 Blog 都有类似的问题,我花了十分钟整理了这篇文章,有用 WordPress 的朋友记得检查一下自己的 Blog 有没有类似的问题。

参考链接:

  1. Dangerous wp-vars.php !? WARNING!
  2. FAQ My site was hacked

Comments 6

  1. www.apple520.info wrote:

    谢谢博主分享,正找这个呢

    Posted 25 Sep 2010 at 3:42 pm
  2. Arno wrote:

    会不会是wordpress的问题,我曾经两度使用wordpress,最后系统blog都瘫痪了。

    Posted 27 Oct 2010 at 3:45 pm
  3. Firm wrote:

    安全工作要做好。。

    Posted 14 Nov 2010 at 5:56 pm
  4. 儿童英语学习 wrote:

    气愤啊!!

    Posted 20 Nov 2010 at 11:31 pm
  5. 韩国 wrote:

    我也看过很多博主写过有关这方面的文章,最简单挂马的网站就是开源程序,是最基础的挂马第一课。

    Posted 11 Dec 2010 at 10:08 am
  6. 狐猴 wrote:

    这莫非是破解模板上的?

    Posted 07 Jan 2011 at 10:04 am

Trackbacks & Pingbacks 1

  1. From Tweets that mention avenger::Life() - 娘的,被挂马了… -- Topsy.com on 25 Sep 2010 at 1:15 am

    [...] This post was mentioned on Twitter by David Pan, Avenger. Avenger said: 我的 WordPress 被挂马及解决过程:http://avenger.name/blog/blog-hacked/ [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *