安全研究

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

发布日期:2009-03-10
更新日期:2009-03-11

受影响系统:
WordPress WordPress MU < 2.7
不受影响系统:
WordPress WordPress MU 2.7
描述:
BUGTRAQ  ID: 34075
CVE(CAN) ID: CVE-2009-1030

WordPress MU允许在单个wordpress安装上运行多个博客。

WordPress MU的choose_primary_blog函数没有正确地过滤Host头。以下是wp-includes/wpmu-functions.php中的有漏洞代码段:

1830 function choose_primary_blog() {
1831     global $current_user;
1832     ?>
1833     <table class="form-table">
1834     <tr>
1835         <th scope="row"><?php _e('Primary Blog'); ?></th>
1836         <td>
1837         <?php
1838         $all_blogs = get_blogs_of_user( $current_user->ID );
1839         if( count( $all_blogs ) > 1 ) {
1840             $primary_blog = get_usermeta($current_user->ID,
'primary_blog');
1841             ?>
1842             <select name="primary_blog">
1843                 <?php foreach( (array) $all_blogs as $blog ) { ?>
1844                     <option value='<?php echo $blog->userblog_id
?>'<?php if( $primary_blog == $blog->userblog_id ) echo '
selected="selected"' ?>>http://<?php echo $blog->domain.$blog->path
?></option>
1845                 <?php } ?>
1846             </select>
1847             <?php
1848         } else {
1849             echo $_SERVER['HTTP_HOST']; <- HERE
1850         }
1851         ?>
1852         </td>
1853     </tr>
1854     </table>
1855     <?php
1856 }

在1849行的echo $_SERVER['HTTP_HOST'];,远程攻击者可以通过HTTP Host头注入HTML和脚本代码。

<*来源:Juan Galiana Lara (jgaliana@isecauditors.com
  
  链接:http://marc.info/?l=bugtraq&m=123671768623292&w=2
*>

测试方法:

警 告

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

$ curl -H "Cookie: my cookies here" -H "Host: <body onload=alert(String.fromCharCode(88,83,83))>"
http://www.example.com/wp-admin/profile.php> tmp.html
$ firefox tmp.html

建议:
厂商补丁:

WordPress
---------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://wordpress.org/

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