WordPress-Backend-Zugriff ohne Passwort

Admin-Passwort vergessen?

Kannst du schlicht nicht mehr einloggen, ist es ziemlich wahrscheinlich, dass du dein Passwort vergessen hast. Klicke also zunächst auf der Login-Seite wp-login.php, unterhalb des Formulars für die Anmeldedaten, einfach auf den Link: Passwort vergessen? Das bringt dich zu einem Dialog, der dir an deine E-Mail-Adresse einen Login-Link zusendet, über den du dein Passwort ändern kannst.

WordPress-Login defekt?

Das Login-Passwort-Zurücksetzen für deine WordPress-Installation funktioniert also nicht. Und vor im Netz empfohlenen Datenbank-Manipulationen hast du ziemlichen Respekt …

Oder ist deine Situation diese: du bist Freelancer und willst ohne Benutzerkonto eine Kunden-Website auf WordPress-Basis reparieren und hast einfach nichts als nur einen FTP-Zugang.

Eintritt durch die Hintertür

Dann bietet sich ein Hack ein, der nicht sehr bekannt ist.

Wichtig zu wissen: es stimmt nicht, dass du nur über Datenbank-Manipulationen als Admin wieder ins Backend kommst!

Es gibt da eine nette, sog. „pluggable function“ in WordPress, die sich naturgemäß überschreiben lässt und die für die Authentifizierung von Benutzern zuständig ist: sie heißt wp_validate_auth_cookie(). Sobald diese Funktion eine im System existierende User-ID zurückliefert (anstatt des boolschen Wertes FALSE), nimmt WordPress an, dass ein gültiges Login-Cookie dieses Useres vorhanden ist und fragt die Datenbank nicht mehr ab.

In den meisten WP-Installationen hat das Admin-Konto die User-ID 1. In diesem Fall kannst du per FTP in die wp-config.php folgenden Fünfzeiler (im folgenden Kasten ohne die erste und letzte Zeile) schreiben:

<?php
if ( $_SERVER['REMOTE_ADDR'] == '0.0.0.0' ) {
    function 
wp_validate_auth_cookie$cookie ''$scheme '' ) {
        return 
1// User ID
    
}
}
?>

Die „0.0.0.0“ muss natürlich gegen deine aktuelle IP-Adresse ausgetauscht werden (andernfalls kann wirklich jeder Zufallsbesucher als Admin zugreifen!); deine aktuelle IP lässt du dir im Zweifelsfall von wieistmeineip.de ansagen.

Stolperstein: Admin-User-ID ist nicht „1“

Hat der Admin-Account nicht die User-ID 1, helfen meist ein paar Tests mit der nachfolgenden URL-Adresse weiter, wobei du natürlich zum einen deine Domain einsetzen musst und zudem die schließende Zahl austestest, und zwar aufsteigend: http://www.example.com/?author=2 usw. WordPress wird diese Adresse, sobald die Zahl einer bestehenden User-ID entspricht, auf den Loginnamen eines bestehenden Benutzerkontos umleiten, z.B. auf http://www.example.com/author/sillyadmin. Sobald das passiert, weißt du, dass du diese Zahl in der Funktion oben gegen die „1“ austauschen kannst.

Stolperstein: die richtige Klinke

Der Code kann u.U. nicht funktionieren, wenn du auf eine Seite des Frontends zugreifst und dabei erwartest, dass die Admin-Leiste erscheint. Denn Frontend-Seiten kommen oft (und hoffentlich) aus dem Page-Cache. Daher testest du den Zugriff am besten mit der Adresse http://www.example.com/wp-admin. Bingo.

Admin-Power genießen

Jetzt kannst du deine Admin-Arbeiten wie z.B. Passwortänderungen, Plugin-Deaktivierungen oder sonstige Reparaturen bequem im Backend durchführen. Du bist regulär als Admin eingeloggt.

Das Tor wieder schließen!

Nach der Reparatur im Backend vergiss bitte nie, den Code oben wieder zu löschen!

Hat dir der Tipp geholfen oder möchtest du etwas ergänzen, schreibe einen Satz in die Kommentare.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.