phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

So sichern Sie phpMyAdmin

Die größte Bedrohung besteht darin, dass ein Angreifer eine Schwachstelle ausnutzen könnte, wie z. Directory Traversal oder Verwenden von SQL Injection zum Aufrufen von load_file() um den Benutzernamen/das Passwort im Klartext in der Konfigurationsdatei zu lesen und sich dann mit phpmyadmin oder über den TCP-Port 3306 anzumelden. Als Pentester habe ich dieses Angriffsmuster verwendet, um ein System zu kompromittieren.

Hier ist eine großartige Möglichkeit, phpmyadmin zu sperren:

  • PhpMyAdmin hat keinen starken Bruteforce-Schutz, daher müssen Sie ein langes, zufällig generiertes Passwort verwenden.
  • KEINE REMOTE-ROOT-ANMELDUNGEN ERLAUBEN! Stattdessen kann phpmyadmin so konfiguriert werden, dass es "Cookie Auth" verwendet um einzuschränken, welche Benutzer auf das System zugreifen können. Wenn Sie einige Root-Rechte benötigen, erstellen Sie ein benutzerdefiniertes Konto, das hinzufügen/löschen/erstellen kann, aber nicht über grant verfügt oder file_priv .
  • Entfernen Sie file_priv Berechtigungen von jedem Konto. file_priv ist eines der gefährlichsten Privilegien in MySQL, da es einem Angreifer ermöglicht, Dateien zu lesen oder eine Hintertür hochzuladen.
  • IP-Adressen auf der Whitelist, die Zugriff auf die phpmyadmin-Oberfläche haben. Hier ist ein Beispiel für ein .htaccess-Reulset:
Order deny,allow
Deny from all
allow from 199.166.210.1
  • Haben Sie keinen vorhersehbaren Dateispeicherort wie:http://127.0.0.1/phpmyadmin . Schwachstellen-Scanner wie Nessus/Nikto/Acunetix/w3af scannen danach.

  • Sperren Sie den TCP-Port 3306 durch Firewall, damit ein Angreifer nicht darauf zugreifen kann.

  • Verwenden Sie HTTPS, andernfalls können Daten und Passwörter an einen Angreifer weitergegeben werden. Wenn Sie die 30 US-Dollar für ein Zertifikat nicht ausgeben möchten, verwenden Sie ein selbstsigniertes. Sie akzeptieren es einmal, und selbst wenn es aufgrund eines MITM geändert wurde, werden Sie benachrichtigt.