Bir WordPress sitesi var ve siz bunu yönetiyordunuz, uzun süre ilgilenmediniz ve bir süre sonra WordPress admin paneline girmeniz gerekti fakat giriş şifresini bilmiyorsunuz. Bu durumda yapabileceklerinizi aşağıda listeledim.
Tabi burada aslında şifre sıfırlama ve değiştirme değil de ki bunlar zaten internette arayınca çokça var, burada daha çok bypass olayını göstermek istedim, yani şifre gerekmeksizin admin paneline girebilmek.
Öncelikle eğer giriş içşin kullanıcı adını biliyorsanız ve ilgili kullanıcının email adresi kullandığınız geçerli bir email adresi ise ve ayrıca sunucu e-posta gönderme yeteneğine sahip ise şifre sıfırlamayı deneyebilirsiniz. FTP’den erişim wp-config.php dosyanıza “wp_set_password( 'password', 1 );
” eklemeniz de aynı şeyi yapacaktır.
Eğer yukarıdakiler geçerli değilse WordPress’in kullandığı veritabanına erişi user tablosundaki kullanıcının şifresini değiştirebilirsiniz, bunu yapmak için MD5 ile şifrelenmiş bir şifreye ihtiyacınız var, https://sysa.ml/tools/md5/ gibi bir araçla örnek “12345678”’in MD5 ile şifrelenmiş halini(25d55ad283aa400af464c76d713c07ad) veritabanına yazabilirsiniz. Elbette bu yöntemde de veritabanına erişiminiz olduğunu varsayıyoruz video ile de gösterilmiş gayet basit https://www.youtube.com/watch?v=lXmoNZqvh7c.
Eğer kullanıcı adı “admin” ise aşağıdaki gibi hızlıca değiştirilebilir:
UPDATE wp_users
SET user_password="25d55ad283aa400af464c76d713c07ad"
WHERE user_login="admin";
Diğer seçenek de bypass yönetimidir, bunu yapmak için FTP erişiminiz olması yeterli ve wp-content/ dizini altında /mu-plugins/ klasörü oluşturmanız gerekir, ardından aşağıdaki içeriğin olduğu örnek giris.php şekilnde bir dosya oluşturun ve tamamdır:
add_filter( 'authenticate', 'nop_auto_login', 3, 10 );
function nop_auto_login( $user, $username, $password ){
if ( ! $user ){
$user = get_user_by( 'email', $username );
}
if ( ! $user ){
$user = get_user_by( 'login', $username );
}
if ( $user ){
wp_set_current_user( $user->ID, $user->data->user_login );
wp_set_auth_cookie( $user->ID );
do_action( 'wp_login', $user->data->user_login );
wp_safe_redirect( admin_url() );
exit;
}
}
Yukarıdaki yöntem ile sadece kullanıcı adını yazarak şifre gerekmeksizin admin paneline erişebilirsiniz, bunu dikkatli kullanmalısınız ve işiniz bitince silmeniz iyi olur.
Son olarak “MAL_SECRET_USER”/Maintenance Auto-Login yöntemini kullanabilirsiniz, bunun için wp-config dosyasında değişiklik yapmanız gerekir. Aşağıdaki gibi kullanabilirsiniz:
/**
*******************************************************************************
* MAL: Maintenance Auto-Login.
*******************************************************************************
* Automatically logs you in as the first admin user found in the WordPress
* database.
*
* How to use it:
*
* 1. Add the following 2 lines to wp-config.php - adjust the values
* define('MAL_SECRET_USER', 'admin:auto');
* define('MAL_SECRET_PASS', '****');
* 2. Save this code to wp-content/mu-plugins/auto-login.php
* 3. Now you can login to WordPress by using the SECRET_USER / SECRET_PASS
* combination. When using these credentials you will end up as admin user.
* 4. To disable this plugin again comment out the 2 lines in wp-config.php
*******************************************************************************
*/
if ( ! defined( 'ABSPATH' ) ){die();}
if ( defined( 'MAL_SECRET_USER' )
&& defined( 'MAL_SECRET_PASS' )
&& MAL_SECRET_USER
&& MAL_SECRET_PASS
){
add_filter( 'authenticate', 'mal_auto_login', 3, 10 );
}
function mal_auto_login( $user, $username, $password ){
if ( MAL_SECRET_USER == $username && MAL_SECRET_PASS == $password ){
// Find an admin user ID.
$user_id = mal_get_admin_user_id();
if ( ! $user_id ){
wp_die( 'No admin user found' );
}
// Log in as admin user automatically.
$user = get_user_by( 'id', $user_id );
wp_set_current_user( $user_id, $user->data->user_login );
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->data->user_login );
wp_safe_redirect( admin_url() );
exit;
}
}
function mal_get_admin_user_id(){
global $wpdb;
$sql = "
SELECT u.ID
FROM{$wpdb->users}u
INNER JOIN{$wpdb->usermeta}m ON m.user_id = u.ID
WHERE
(m.meta_key = '{$wpdb->prefix}user_level' AND m.meta_value = 10)
OR
(m.meta_key = '{$wpdb->prefix}capabilities' AND m.meta_value LIKE '%\"administrator\"%')
";
$res = intval( $wpdb->get_var( $sql ) );
return $res;
}
Yukarıdaki kodda aynı şekilde wp-content/mu-plugins/ dizini altında bir eklenti dosyası olarak oluşturulmalı, kaynak https://gist.github.com/stracker-phil/410096ef73995afd61d6
Tüm bunların yanında dikkatli kullanmak şartı ile birkaç başka yöntem de mevcut https://www.google.com/search?q=wordpress+admin+password+reset aramanız yeterli. https://kuttler.eu/code/wordpress-password-reset/ de farklı bir yönetem, WordPress resmi yardım sayfasındaki yönetimleri de https://wordpress.org/support/article/resetting-your-password/ adresinden inceleyebilirsiniz.
Diğer WordPress ile ilgili beğenebileceğiniz şeyler:
Ayrıca WordPress ile ilgili tüm konularda bana danışmak veya sorunlarınızı çözmem için bana ulaşabilirsiniz:
Lütfen Twitter’dan takip! Teşekkürler.