WordPress-Backend-Zugriff ohne Passwort

Schloss

Admin-Passwort vergessen?

Ganz ruhig und keine Panik: du solltest doch zumindest deine E-Mail-Adresse noch wissen. Also klicke 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 kaputt?

Das Login-Passwort-Zurücksetzen für deine WordPress-Installation funktioniert so aber nicht? Und Datenbank-Manipulationen findest du eher kompliziert …

Oder: du bist Freelancer und willst ohne Benutzerkonto eine Kunden-Website auf WordPress-Basis reaprieren und hast nichts als nur einen FTP-Zugang.

Eintritt durch die Hintertür

Wichtig zu wissen: es stimmt nicht, dass du nur über Datenbank-Manipulationen als Admin ins Backend kommen kannst, falls die Zugangsdaten einmal (aus welchen Gründen immer) nicht funktionieren wollen. Es gibt 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 kann ich 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 ich natürlich gegen meine aktuelle IP-Adresse austauschen (andernfalls kann wirklich jeder Zufallsbesucher als Admin zugreifen!); die IP lasse ich mir von wieistmeineip.de ansagen.

Manchmal wurde jedoch der ursprüngliche Admin-Account mit der User-ID 1 gelöscht und ein neuer angelegt. In solch einem Fall helfen meist ein paar Tests mit dem nachfolgenden URL weiter, in welchem ich zum einen die Domain anpasse und dann auch die schließende Zahl austeste und aufsteigend weiterprobiere: http://www.example.com/?author=2 usw. WordPress wird diesen URL, sobald die Zahl einer bestehenden User-ID entspricht, auf den Loginnamen eines bestehenden Benutzerkontos umleiten, z.B. auf http://www.example.com/author/sillyadmin. Wenn das passiert, dann weiß ich, dass ich diese Zahl in der Funktion oben gegen die „1“ austauschen kann.

Die richtige Klinke drücken

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

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

Hat dich das gerettet? Ich freue mich ggf. über ein kleines Dankeschön in den Kommentaren!

Schreibe einen Kommentar

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