phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

Comment sécuriser phpMyAdmin

La plus grande menace est qu'un attaquant puisse exploiter une vulnérabilité telle que; traversée de répertoires ou en utilisant l'injection SQL pour appeler load_file() pour lire le nom d'utilisateur/mot de passe en texte brut dans le fichier de configuration, puis connectez-vous à l'aide de phpmyadmin ou via le port tcp 3306. En tant que pentester, j'ai utilisé ce modèle d'attaque pour compromettre un système.

Voici un excellent moyen de verrouiller phpmyadmin :

  • PhpMyAdmin ne dispose pas d'une solide protection contre la force brute, vous devez donc utiliser un long mot de passe généré aléatoirement.
  • N'AUTORISEZ PAS LES CONNEXIONS RACINES À DISTANCE ! Au lieu de cela, phpmyadmin peut être configuré pour utiliser "Cookie Auth" pour limiter quel utilisateur peut accéder au système. Si vous avez besoin de privilèges root, créez un compte personnalisé qui peut ajouter/supprimer/créer mais qui n'a pas de grant ou file_priv .
  • Supprimer file_priv autorisations de chaque compte. file_priv est l'un des privilèges les plus dangereux de MySQL car il permet à un attaquant de lire des fichiers ou de télécharger une porte dérobée.
  • Liste blanche des adresses IP ayant accès à l'interface phpmyadmin. Voici un exemple d'ensemble de requêtes .htaccess :
Order deny,allow
Deny from all
allow from 199.166.210.1
  • Ne pas avoir d'emplacement de fichier prévisible comme :http://127.0.0.1/phpmyadmin . Les scanners de vulnérabilité comme Nessus/Nikto/Acunetix/w3af rechercheront cela.

  • Coupez le pare-feu du port tcp 3306 afin qu'il ne soit pas accessible par un attaquant.

  • Utilisez HTTPS, sinon les données et les mots de passe peuvent être divulgués à un attaquant. Si vous ne voulez pas débourser les 30 $ pour un certificat, utilisez un certificat auto-signé. Vous l'accepterez une fois, et même s'il a été modifié en raison d'un MITM, vous en serez informé.