PHP2Shell und phpMyAdmin: Datenbank-Verwaltung absichern
Kurz gesagt: phpMyAdmin ist selbst ein PHP-Programm. Ist es aus dem Internet erreichbar, ist es ein bevorzugtes Ziel für PHP2Shell, denn Angreifer suchen gezielt nach Adressen wie
/phpmyadmin. Aktualisieren Sie das PHP darunter und sperren Sie den Zugang für alle außer Ihnen.
Was ist phpMyAdmin?
phpMyAdmin ist eine Weboberfläche, mit der man die Datenbank einer Website im Browser verwalten kann. In der Datenbank stehen zum Beispiel Kundendaten, Bestellungen, Passwörter (verschlüsselt) und alle Inhalte der Website.
Viele Hoster und Server-Panels wie Plesk und cPanel liefern phpMyAdmin mit. Manche Administratoren haben es auch selbst installiert, oft unter Adressen wie ihre-firma.de/phpmyadmin oder ihre-firma.de/pma.
Warum phpMyAdmin besonders gefährdet ist
- Es läuft mit PHP. Die Lücken stecken im PHP-Programm, nicht in phpMyAdmin. Eine Anmeldung bei phpMyAdmin ist für den Angriff nicht nötig.
- Es ist leicht zu finden. Automatische Scanner durchsuchen das Internet rund um die Uhr nach bekannten Adressen von phpMyAdmin.
- Es sitzt direkt an den Daten. Wer den Server übernimmt, auf dem phpMyAdmin läuft, findet dort oft auch die Zugangsdaten zur Datenbank.
Schritt 1: Herausfinden, ob und wo phpMyAdmin läuft
Probieren Sie im Browser diese Adressen mit Ihrer Domain aus:
https://ihre-firma.de/phpmyadminhttps://ihre-firma.de/pmahttps://ihre-firma.de/phpMyAdmin
Erscheint eine Anmeldeseite mit phpMyAdmin-Logo, ist es öffentlich erreichbar. Fragen Sie außerdem Ihren Hoster oder Dienstleister, ob phpMyAdmin installiert ist.
Schritt 2: Das PHP darunter aktualisieren
phpMyAdmin nutzt das PHP des Servers, auf dem es läuft. Folgen Sie deshalb der Anleitung für Ihre Umgebung:
- Im Webhosting: Ihr Hoster stellt phpMyAdmin bereit und muss sein PHP aktualisieren. Fragen Sie nach (siehe Webhosting).
- Plesk und cPanel bringen phpMyAdmin mit eigenem PHP mit. Das wird mit den Panel-Updates aktualisiert, siehe Plesk und cPanel.
- Selbst installiert auf Debian, Ubuntu oder AlmaLinux: Das System-PHP aktualisieren, siehe Debian und Ubuntu bzw. AlmaLinux, Rocky und RHEL.
- Als Docker-Container (Image
phpmyadmin): Das Image enthält ein eigenes PHP. Neu herunterladen und den Container neu starten:
docker compose pull phpmyadmin
docker compose up -d phpmyadmin
Mehr dazu unter Docker-Container.
Abgesichert sind PHP 8.5.12, 8.4.27, 8.3.36 oder 8.2.35.
Schritt 3: Zugang aus dem Internet sperren
Das ist die wirksamste Maßnahme, auch über PHP2Shell hinaus. phpMyAdmin muss fast nie für jeden im Internet erreichbar sein.
Möglichkeiten, von einfach bis gründlich:
- Abschalten, wenn niemand es braucht. Viele Firmen nutzen phpMyAdmin nur alle paar Monate. Im Docker-Fall: Container stoppen. Bei Panels lässt es sich oft pro Konto deaktivieren.
- Nur bestimmte IP-Adressen erlauben. Zum Beispiel für Apache in der Konfiguration von phpMyAdmin:
<Directory /usr/share/phpmyadmin>
Require ip 203.0.113.10
</Directory>
Für nginx:
location /phpmyadmin {
allow 203.0.113.10;
deny all;
}
Ersetzen Sie 203.0.113.10 durch die feste IP-Adresse Ihres Büros.
- Nur über VPN oder SSH-Tunnel erreichbar machen. phpMyAdmin lauscht dann nur auf
127.0.0.1und ist von außen unsichtbar.
Schritt 4: phpMyAdmin selbst aktualisieren
Unabhängig von PHP2Shell sollte phpMyAdmin aktuell sein. Die aktuelle Version 5.2 läuft mit PHP 7.2 bis 8.x. Alte Versionen wie phpMyAdmin 4.x funktionieren mit PHP 8 nicht und haben eigene Sicherheitslücken.
Welche Risiken hat das PHP-Update?
Für phpMyAdmin selbst ist das Risiko gering, solange eine aktuelle phpMyAdmin-Version verwendet wird. Achten Sie aber auf Folgendes:
- Andere Websites auf demselben Server nutzen oft dasselbe PHP. Ein Update betrifft dann auch diese. Für sie gelten die Risiken aus der Anleitung Ihrer Umgebung: Alter Programmcode kann nach einem Wechsel der Hauptversion Fehlerseiten erzeugen.
- Alte phpMyAdmin-Versionen (4.x und älter) zeigen nach einem Wechsel auf PHP 8 nur noch Fehler. Dann muss phpMyAdmin mit aktualisiert werden.
- Gesperrter Zugang trifft auch Ihren Dienstleister. Wenn Sie den Zugang per IP-Adresse einschränken, sprechen Sie vorher mit allen, die phpMyAdmin nutzen.
- Eigene Einstellungen in
config.inc.phpmüssen bei einer Neuinstallation übernommen werden.
So senken Sie das Risiko:
- Sicherung der Datenbank anlegen, bevor Sie etwas ändern.
- Zuerst den Zugang sperren, dann in Ruhe aktualisieren. Eine gesperrte Oberfläche kann nicht angegriffen werden, egal welche Version läuft.
- Nach dem Update testen: Anmelden, eine Tabelle öffnen, einen Export starten.
Schritt 5: Auf Einbruchsspuren prüfen
War phpMyAdmin öffentlich erreichbar, prüfen Sie ab dem 1. August 2026: unbekannte PHP-Dateien im Webverzeichnis, neue Datenbank-Benutzer, unbekannte Administrator-Konten in Ihrer Website und auffällige Zugriffe auf /phpmyadmin im Webserver-Log.
So prüfen Sie, ob es geklappt hat
Rufen Sie die Adresse von phpMyAdmin von einem fremden Netz aus auf, etwa mit dem Smartphone ohne WLAN. Es sollte keine Anmeldeseite mehr erscheinen. Ihre Website prüfen Sie zusätzlich mit unserem kostenlosen Check.
Fragen oder Probleme beim Update?
Sie sind unsicher, ob Ihre Website das Update verträgt, oder nach dem Update funktioniert etwas nicht mehr? Schreiben Sie uns. Wir sehen uns Ihre Website an und sagen Ihnen ehrlich, was zu tun ist, auch wenn Sie das Update am Ende selbst machen.