sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

Cómo asegurar phpMyAdmin

La mayor amenaza es que un atacante pueda aprovechar una vulnerabilidad como; recorrido de directorios, o usando SQL Injection para llamar a load_file() para leer el nombre de usuario/contraseña de texto sin formato en el archivo de configuración y luego iniciar sesión usando phpmyadmin o a través del puerto tcp 3306. Como pentester, he usado este patrón de ataque para comprometer un sistema.

Aquí hay una excelente manera de bloquear phpmyadmin:

  • PhpMyAdmin carece de una fuerte protección de fuerza bruta, por lo que debe usar una contraseña larga generada aleatoriamente.
  • ¡NO PERMITA INICIO DE SESIÓN REMOTO! En su lugar, phpmyadmin se puede configurar para usar "Cookie Auth" para limitar qué usuario puede acceder al sistema. Si necesita algunos privilegios de root, cree una cuenta personalizada que pueda agregar/soltar/crear pero que no tenga grant o file_priv .
  • Eliminar file_priv permisos de cada cuenta. file_priv es uno de los privilegios más peligrosos en MySQL porque permite que un atacante lea archivos o cargue una puerta trasera.
  • Dirección IP de la lista blanca que tiene acceso a la interfaz de phpmyadmin. Aquí hay un ejemplo de .htaccess reulset:
Order deny,allow
Deny from all
allow from 199.166.210.1
  • No tenga una ubicación de archivo predecible como:http://127.0.0.1/phpmyadmin . Los escáneres de vulnerabilidades como Nessus/Nikto/Acunetix/w3af buscarán esto.

  • Cortafuegos fuera del puerto tcp 3306 para que un atacante no pueda acceder a él.

  • Use HTTPS, de lo contrario, los datos y las contraseñas pueden filtrarse a un atacante. Si no desea desembolsar los $ 30 por un certificado, use uno autofirmado. Lo aceptará una vez, e incluso si se modificó debido a un MITM, se le notificará.