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计算回口令,攻击者仍可以通过认证。
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计算回口令,攻击者仍可以通过认证。