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(网友投票)