Den største trussel er, at en angriber kan udnytte en sårbarhed såsom; mappegennemgang eller brug af SQL Injection til at kalde load_file()
at læse almindelig tekst brugernavn/adgangskode i konfigurationsfilen og derefter logge ind med phpmyadmin eller over tcp port 3306. Som en pentester har jeg brugt dette angrebsmønster til at kompromittere et system.
Her er en fantastisk måde at låse phpmyadmin på:
- PhpMyAdmin mangler stærk bruteforce-beskyttelse, så du skal bruge en lang tilfældigt genereret adgangskode.
- TILLAD IKKE FJERNETRODLOGIN! I stedet kan phpmyadmin konfigureres til at bruge "Cookie Auth"
for at begrænse, hvilken bruger der kan få adgang til systemet. Hvis du har brug for nogle root-privilegier, skal du oprette en brugerdefineret konto, der kan tilføje/slippe/oprette, men som ikke har
grant
ellerfile_priv
. - Fjern
file_priv
tilladelser fra hver konto.file_priv
er et af de farligste privilegier i MySQL, fordi det giver en hacker mulighed for at læse filer eller uploade en bagdør. - Hvidliste IP-adresser, som har adgang til phpmyadmin-grænsefladen. Her er et eksempel på .htaccess reulset:
Order deny,allow Deny from all allow from 199.166.210.1
-
Har ikke en forudsigelig filplacering som:
http://127.0.0.1/phpmyadmin
. Sårbarhedsscannere som Nessus/Nikto/Acunetix/w3af vil scanne for dette. -
Firewall fra tcp-port 3306, så den ikke kan tilgås af en angriber.
-
Brug HTTPS, ellers kan data og adgangskoder blive lækket til angriberen. Hvis du ikke vil betale $30 for et certifikat, så brug en selvsigneret. Du vil acceptere det én gang, og selvom det blev ændret på grund af en MITM, vil du blive underrettet.