重置 wordpress 管理员密码

作者:手气不错 发布时间:May 29, 2008 分类:PHP

在管理朋友的 Blog 时,他竟然把密码给忘记了(囧)。于是我写了如下的代码:

<?php
// 载入 wordpress 环境
include("wp-config.php");
include("wp-blog-header.php");

// 如果没有 POST 进密码,则显示 input 框
if (empty($_POST['password'])) {
?>
    <form method="post">
    password: <input name="password" type="password" />
    <input type="submit" />
    </form>
<?php
} else {
    // 修改数据库,SQL 语句一看便知(wordpress 密码用 MD5 加密)
    $sql = "UPDATE " . $wpdb->users . " SET user_pass = '"
        . md5($_POST['password']) . "' WHERE user_login = 'admin'";
    if ($link = $wpdb->query($sql)) {
        // 尝试删除自身
        @unlink($_SERVER['SCRIPT_FILENAME']);
        wp_redirect('wp-login.php');
        exit;
    } else {
        die('reset password error!');
    }
}
?>

这段代码会重置 wordpress 管理员密码。用法很简单,将其保存在 wordpress 根目录执行即可(在 2.4x 系列版本测试通过)。

该脚本非常危险,强烈建议使用完毕以后立即删除

这里是该代码 Zip 格式打包下载

已有 4 条回复

  1. Michael May 30th, 2008 at 02:26 am #1
    Michael

    没写过php代码,但差不多能看懂 :)

    我的疑问是,用得着这么复杂吗?直接杀进数据库干掉那行记录不就可以了?

  2. 手气不错 May 30th, 2008 at 02:47 am #2
    手气不错

    @Micheal 为的是方便普通用户 :^)

  3. MacJi May 31st, 2008 at 06:52 am #3
    MacJi

    直接输出一个md5('111111'),然后把copy他的值,打开mysql,找到对应的表,重置。。。。

  4. 锐风 June 1st, 2008 at 06:24 pm #4
    锐风

    呵呵.. 很强大的代码..

添加新回复

Yahoo 统计