安全研究

安全漏洞
Wordpress特定Cookie绕过认证漏洞

发布日期:2007-11-19
更新日期:2007-11-22

受影响系统:
WordPress WordPress 1.5 - 2.3.1
描述:
CVE(CAN) ID: CVE-2007-6013

WordPress是一款免费的论坛Blog系统。

Wordpress用户数据库会存储登录口令的MD5哈希以进行认证,如果客户端提供的口令哈希能够匹配所存储的哈希,就会允许访问。

$ mysql -u wordpress -p wordpress
   Enter password: ********

   mysql> SELECT ID, user_login, user_pass FROM wp_users;
   +----+-------------+----------------------------------+
   | ID | user_login  | user_pass                        |
   +----+-------------+----------------------------------+
   |  1 | admin       | 4cee2c84f6de6d89a4db4f2894d14e38 |
   ...

由于对每个操作都要求口令比较麻烦,因此在登录后Wordpress会提供客户端两个cookie:

  wordpressuser_6092254072ca971c70b3ff302411aa5f=admin
  wordpresspass_6092254072ca971c70b3ff302411aa5f=813cadd8658c4776afbe5de8f304a684

cookie名称包含有blog URL的MD5哈希(6092...1a5f),wordpressuser_...值为登录名称,wordpresspass值为用户口令的双重MD5哈希。如果wordpressuserpass_... cookie匹配指定用户的wp_users.user_pass数据库项的哈希,Wordpress就会允许访问指定的用户帐号。换句话说,数据库包含有口令MD5且cookie包含有口令MD5的再次MD5,因此可以将数据库项转换为认证cookie。

如果攻击者可以读访问wp_user表的话,就可以生成任何帐号的有效cookie。即使用户的口令足够复杂,无法从口令MD5计算回口令,攻击者仍可以通过认证。

<*来源:Steven J. Murdoch (http://www.cl.cam.ac.uk/users/sjm217/)
  
  链接:http://marc.info/?l=bugtraq&m=119550270403703&w=2
        http://secunia.com/advisories/27714/
*>

测试方法:

警 告

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

1) 找到blog URL的哈希:查看URL或创建帐号得到用户cookie
2) 从wp_users表读user_pass项:查看备份,执行SQL注入等
3) 设置以下cookie:
      wordpressuser_<MD5(url)>=admin
      wordpresspass_<MD5(url)>=MD5(user_pass)
4) 这时可以管理访问blog

建议:
厂商补丁:

WordPress
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://wordpress.org/

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