WordPress的缓存插件远程PHP代码的执行
两个非常popularWordPresscaching插件:WP超级缓存(4373811下载)andW3总缓存(1975480下载)受到一个漏洞,允许远程用户可以执行任意的PHP代码。
受影响的版本有:
- WP超级缓存(版本1.2及以下,1.3版本。x和好的)
- w3total Cache(版本0 9 2 8和下面,版本0 9 2 9是好的)
该漏洞是第一个发现并报告在theWordPressforums大约一个月前。该漏洞已经被固定在两个插件因为他们,所以确保你运行的是最新版本。
这两个插件支持页面上的动态内容。你可以标记页面的某些部分是动态和这些不会被缓存。目前有三个标签,可以用来创建dynamicsnippets。你可以找到更多的信息关于这个的WP超级缓存FAQ页.
-
动态缓存的内容
123456789<!--dynamic-cached-content--><?php
include_once
( ABSPATH .
'/scripts/adverts.php'
);
print_sidebar_ad();
do_more_stuff();
?><!--
include_once
( ABSPATH .
'/scripts/adverts.php'
);
print_sidebar_ad();
do_more_stuff();
--><!--/dynamic-cached-content-->
这段代码将包括文件的广告。php和将执行功能”打印栏广告()”和“做更多的事情()”。
-
mfunc
123<!--mfunc function_name(
'parameter'
,
'another_parameter'
) -->
<?php function_name(
'parameter'
,
'another_parameter'
) ?>
<!--/mfunc-->
这段代码会执行这个函数”函数名()”。
-
mclude
123<!--mclude file.php-->
<?php
include_once
( ABSPATH .
'file.php'
); ?>
<!--/mclude-->
这段代码将包含文件。php在ABSPATH目录。
问题是,这些标签是HTML注释和WordPress不过滤它们。同时,这些标签被解释,导致代码在服务器上执行。
利用这个漏洞只是有人必须发布评论包含任何特殊的标签上面提到的。例如,如果有人帖子评论< !——mfunc eval(base64解码(cGhwaW5mbygpOyAg));- – – > < !——/ mfunc——>,这评论将被忽略,WordPress(因为它是一个HTML注释)但解析和执行的缓存插件,将返回一个页面显示phpinfo()页。
我们刚刚Acunetix发布了一个“全球价值调查”主要根据更新这是测试网站的这种脆弱性,WordPress你可以安装更新从Acunetix Web漏洞扫描器>一般>程序更新。点击“检查更新”,然后选择“下载和安装更新”。
这是一个非常危险的漏洞。超过600万个WordPress的安装可能会脆弱。因此绝对必要的,脆弱的版本的这些插件升级到最新版本尽快。