安全研究

安全漏洞
WordPress wp-includes/feed.php模块跨站脚本漏洞

发布日期:2008-11-25
更新日期:2008-11-26

受影响系统:
WordPress WordPress < 2.6.5
不受影响系统:
WordPress WordPress 2.6.5
描述:
BUGTRAQ  ID: 32476

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目录中生成包含有跨站脚本的文件。

<*来源:Jeremias Reith (jr@noxss.org
  
  链接:http://marc.info/?l=bugtraq&m=122765274912454&w=2
        http://secunia.com/advisories/32882/
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

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/

浏览次数:4652
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障