4 cách lấy lại pass admin WordPress trong Shared Hosting

Cập nhật: 18/06/2019

Nếu chẳng may bạn quên mật khẩu admin WordPress thì đừng lo, vẫn còn rất nhiều cách giúp bạn lấy lại pass mà không cần đăng nhập vào WordPress.

Cách 1. Sử dụng tính năng khôi phục mật khẩu

Truy cập vào trang đăng nhập WordPress theo liên kết: example.com/wp-admin

Với example.com là tên miền website của bạn, ví dụ: vnexpress.net/wp-admin

quen-mat-khau-admin-wordpress-min

Gõ vào tên tài khoản hoặc địa chỉ email rồi chọn Lấy lại mật khẩu mới. Một email chứa liên kết khôi phục pass admin WordPress sẽ được gửi đến email của bạn.

quen-mat-khau-admin-wordpress-2-min

Kiểm tra Email và nhấp chuột vào liên kết khôi phục mật khẩu

quen-mat-khau-admin-wordpress-3-min

Trong trường hợp bạn không nhận được Email, dù đã kiểm tra kĩ hộp thư Spam, thì hãy thử cách thứ 02 nhé.

Cách 2. Đổi pass admin trong phpMyAdmin

Cách này chỉ áp dụng nếu bạn có tài khoản đăng nhập Cpanel.

Truy cập Cpanel, mỗi hosting thường có một liên kết đăng nhập khác nhau, nhưng bạn có thể thử: example.com:2082

dang-nhap-cpanel-min

Kéo xuống phần DATABASES và chọn phpMyAdmin

dang-nhap-cpanel-2-min

Chọn Database của website cần khôi phục, và tìm dòng WP_USERS (web mình đổi tên các table trong phpMyAdmin rồi nên tên nó hơi khác chút, WP_USERS thường là dòng cuối cùng).

dang-nhap-cpanel-3-min

Tìm đúng tên tài khoản admin, và chọn Edit

dang-nhap-cpanel-4-min

Điền pass admin mới vào mục 1, và chọn MD5 tại mục 2 rồi nhấn Go (góc phải bên dưới)

dang-nhap-cpanel-5-min

Vậy là xong, đăng nhập lại với pass admin mới thôi.

Nếu bạn không có tài khoản Cpanel, thì có thể thử cách 03

Cách 3. Khôi phục pass admin bằng FTP Account

Trong trường hợp bạn thử cách 01 nhưng không nhận được Email khôi phục. Và bạn không có tài khoản CPanel  thì hãy thử khôi phục thông qua FTP Account.

Với FTP Account, bạn có thể truy cập vào phần file của website trên Hosting. Chúng ta sẽ thêm hàm vào tập tin Functions.php để tiến hành tạo một tài khoản admin mới.

Truy cập vào FTP với phần mềm File Zilla. Bạn có thể tải File Zilla tại: https://filezilla-project.org/download.php?type=client

dang-nhap-file-zilla-1-min

Thêm đoạn mã này vào tập tin functions.php tại đường dẫn wp-content/themes/functions.php hoặc trong thư mục Child Theme.

wp_set_password( 'password', 1 );

với Password là mật khẩu mới, bạn điền tùy ý. Và 1 là ID của tài khoản Admin.

Bạn có thể sửa trực tiếp trên File Zilla, hoặc tải về, sửa rồi tải đè lên file cũ nhé.

Thử đăng nhập lại. Nếu thành công, hãy xóa đoạn mã trên nhé.

Nếu bạn đăng nhập mãi vẫn báo sai. Hãy xóa đoạn mã trên và đăng nhập lại nhé 😛

Cách 04. Sử dụng PHP Script

Tạo một file có tên là khunglong.php trong thư mục website, ngang hàng với wp-config.php với nội dung như sau:

khoi-phuc-pass-admin-wordpress-17-min

<?php
/*
	This program is free software; you can redistribute it and/or modify
    	it under the terms of the GNU General Public License as published by
    	the Free Software Foundation; either version 2 of the License, or
    	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
    	but WITHOUT ANY WARRANTY; without even the implied warranty of
    	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
    	along with this program; if not, write to the Free Software
    	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

require './wp-blog-header.php';

function meh() {
	global $wpdb;

	if ( isset( $_POST['update'] ) ) {
		$user_login = ( empty( $_POST['e-name'] ) ? '' : sanitize_user( $_POST['e-name'] ) );
		$user_pass  = ( empty( $_POST[ 'e-pass' ] ) ? '' : $_POST['e-pass'] );
		$answer = ( empty( $user_login ) ? '<div id="message" class="updated fade"><p><strong>The user name field is empty.</strong></p></div>' : '' );
		$answer .= ( empty( $user_pass ) ? '<div id="message" class="updated fade"><p><strong>The password field is empty.</strong></p></div>' : '' );
		if ( $user_login != $wpdb->get_var( "SELECT user_login FROM $wpdb->users WHERE ID = '1' LIMIT 1" ) ) {
			$answer .="<div id='message' class='updated fade'><p><strong>That is not the correct administrator username.</strong></p></div>";
		}
		if ( empty( $answer ) ) {
			$wpdb->query( "UPDATE $wpdb->users SET user_pass = MD5('$user_pass'), user_activation_key = '' WHERE user_login = '$user_login'" );
			$plaintext_pass = $user_pass;
			$message = __( 'Someone, hopefully you, has reset the Administrator password for your WordPress blog. Details follow:' ). "\r\n";
			$message  .= sprintf( __( 'Username: %s' ), $user_login ) . "\r\n";
			$message .= sprintf( __( 'Password: %s' ), $plaintext_pass ) . "\r\n";
			@wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Your WordPress administrator password has been changed!' ), get_option( 'blogname' ) ), $message );
			$answer="<div id='message' class='updated fade'><p><strong>Your password has been successfully changed</strong></p><p><strong>An e-mail with this information has been dispatched to the WordPress blog administrator</strong></p><p><strong>You should now delete this file off your server. DO NOT LEAVE IT UP FOR SOMEONE ELSE TO FIND!</strong></p></div>";
		}
	}

	return empty( $answer ) ? false : $answer;
}

$answer = meh();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>WordPress Emergency PassWord Reset</title>
	<meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
	<link rel="stylesheet" href="<?php bloginfo( 'wpurl' ); ?>/wp-admin/wp-admin.css?version=<?php bloginfo( 'version' ); ?>" type="text/css" />
</head>
<body>
	<div class="wrap">
		<form method="post" action="">
			<h2>WordPress Emergency PassWord Reset</h2>
			<p><strong>Your use of this script is at your sole risk. All code is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness. Further, I shall not be liable for any damages you may sustain by using this script, whether direct, indirect, special, incidental or consequential.</strong></p>
			<p>This script is intended to be used as <strong>a last resort</strong> by WordPress administrators that are unable to access the database.
				Usage of this script requires that you know the Administrator's user name for the WordPress install. (For most installs, that is going to be "admin" without the quotes.)</p>
			<?php
			echo $answer;
			?>
			<p class="submit"><input type="submit" name="update" value="Update Options" /></p>

			<fieldset class="options">
				<legend>WordPress Administrator</legend>
				<label><?php _e( 'Enter Username:' ) ?><br />
					<input type="text" name="e-name" id="e-name" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-name'] ) ); ?>" size="20" tabindex="10" /></label>
				</fieldset>
				<fieldset class="options">
					<legend>Password</legend>
					<label><?php _e( 'Enter New Password:' ) ?><br />
					<input type="text" name="e-pass" id="e-pass" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-pass'] ) ); ?>" size="25" tabindex="20" /></label>
				</fieldset>

				<p class="submit"><input type="submit" name="update" value="Update Options" /></p>
			</form>
		</div>
	</body>
</html>
<?php exit; ?>

Mở liên kết: example.com/khunglong.php

với example.com là tên miền website của bạn.

Điền tên tài khoản (Enter Username) và Mật khẩu mới (Enter New Password)

khoi-phuc-pass-admin-1-min

Thử đăng nhập lại với mật khẩu mới này. Nếu thành công, hãy xóa file khunglong.php để tránh người khác đổi mật khẩu nhé ^^

Và còn một số cách khác cho các bạn sử dụng VPS/Server, xem tại đây

Cập nhật lần cuối: 06/06/2018