WordPress <= 2.8.3 管理员密码远程重置漏洞(及绕过方案)
今天刚刚看到的,WordPress 2.8.3版本之前(含)远程重置管理员密码漏洞。
关于该漏洞的信息参见这里。SuperHei的blog上面有一个简单的原理分析。
别拿我的blog做实验,我这个已经修改过了。
这个漏洞的危害不怎么大,只是用来做一些恶作剧。目前WordPress还没有新版,各位用WordPress自建blog的同仁们可以考虑自己修改 wordpress 的代码来绕过该问题:
在$(blog_root)下面,找到wp-login.php,打开,找到function reset_password。找到其中这一行:
function reset_password($key) {
global $wpdb;
$key = preg_replace('/[^a-z0-9]/i', '', $key);
if ( empty( $key ) )
return new WP_Error('invalid_key', __('Invalid key'));
将其改成:
if ( ! is_string($key) || empty( $key ) )
即可。