WordPress wp-includes/feed.php模块跨站脚本漏洞
2008-12-09
系统编号:
WAVDB-01287
BUGTRAQ: 32476
影响版本:
WordPress < 2.6.5
程序介绍:
WordPress是一款免费的论坛Blog系统。
漏洞分析:
WordPress的wp-includes/feed.php文件中的self_link()函数用于为ATOM和RSS 2.0源中的<atom:link>标签生成绝对URL:
function self_link() {
echo 'http'
. ( $_SERVER['https'] == 'on' ? 's' : '' ) . '://'
. $_SERVER['HTTP_HOST']
. wp_specialchars(stripslashes($_SERVER['REQUEST_URI']), 1);
}
这个函数没有过滤HTTP_HOST变量,而WordPress在wp-settings.php中用转义后变量替换了所有$_SERVER变量:
$_SERVER = add_magic_quotes($_SERVER);
几乎在所有设置中add_magic_quotes()都会对单元运行mysql_real_escape_string()并返回修改过的数组,而这种转义方式在标记环境中是不安全的。向WordPress安装发布恶意的请求可能导致在文档的root目录中生成包含有跨站脚本的文件。
漏洞利用:
curl -H "Host: \"><body onload=alert(String.fromCharCode(88,83,83))>" \
http://www.example.org/blog/feed
解决方案:
厂商补丁:
WordPress
---------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://wordpress.org/development/2008/11/wordpress-265/
信息来源:
<*来源:Jeremias Reith (jr@noxss.org)
链接:http://marc.info/?l=bugtraq&m=122765274912454&w=2
http://secunia.com/advisories/32882/
*>