Kategoriler
WordPress

WordPress admin paneli bypass

WordPress yönetim panelinin giriş şifresi unutulduğunda giriş için yapılabilecekler.

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:

Dünyanın en çok kullanılan şifreleri [2020]: Günümüzde parola olarak hala 123456 kullananlar var mı? Gerçekten de, NordPass’ın 2020 için en yaygın kullanılan şifreleri listesine göre evet var ve verilerini riske atıyorlar.
WordPress login güvenliği: WordPress login sayfanızı hackerlardan korumak için yapılabilecek bazı işlemle
.htaccess ile WordPress girişini korumak: WordPress admin panelini ve login sayfasını korumak için .htaccess çözümü. Net ve en etkili yöntem.
WordPress config dosyasında gizli özellikler
WordPress admin paneline özel widget eklemek: Çok kullanıcılı bir WordPress sitesine sahipseniz, giriş yapan kullanıcılara admin panlinde özel bir mesaj göstermek isteyebilirsiniz. Ekstra olarak admin panelini düzenlemek için eklentiler.
WordPress login sayfası logo, başlık ve URL değiştirmek: WordPress giriş sayfanızı özelleştirmek için aşağıdakileri yapabilirsiniz.
Yönetici harici WordPress Admin panelini yasaklamak
WordPress kullanıcı rolüne göre fonksiyon: WordPress sitesinde birden fazla kullanıcı var ise veya üyelik ile çalışan bir sistemde çalışıyor iseniz işinize yarayabilecek bir kullanım.

Ayrıca WordPress ile ilgili tüm konularda bana danışmak veya sorunlarınızı çözmem için bana ulaşabilirsiniz:

WordPress sorun giderme hizmeti: WordPress sitenizde herhangi bir sorun varsa biz bunu hızlıca çözebiliriz.

Lütfen Twitter’dan takip! Teşekkürler.

WOLKANCA

Volkan Yılmaz

Digital Marketing & WordPress & SEO volkan@volkanyilmaz.com.tr