compte utilisateur mysqladmin pas sécurisé?
-
22-10-2019 - |
Question
Je joue toujours avec mon propre DB essayer d'apprendre et a vu ceci:
-
Je pourrais changer le mot de passe root sans aucun problème du tout ... Si je suis dans le serveur je peux créer un algorithme pour commencer à tester le mot de passe et un jour et je trouverai, je veux dire:
Web-Services-iMac-2:~ jbolivar$ mysqladmin -utest1 -p**SOME_THING_HERE** password test1
. -
est-il autorisé à changer mot de passe en utilisant ce ???:
Tableau mise à jour mysql.user set password = Mot de passe ( 'test') où user = 'test1';
à côté que si je crée une table dictionnaire (une table avec tous les mots possibles) et appliquer MOT DE PASSE ( « mot ») Je peux faire une jointure et trouver la valeur de tout passe, droit ?. Pouvez-vous me donner votre avis sur mon analyse?
La solution
Avant de continuer à jouer avec mysqladmin, vous devez vous assurer que votre installation ne donne pas intentionnellement accès loin.
Pour commencer, pouvez-vous vous connecter à mysql comme ça?
# mysql <hit enter>
Si vous pouvez obtenir juste comme ça, exécutez la commande suivante:
SELECT USER(),CURRENT_USER();
- USER () rapports comment vous avez tenté d'authentifier MySQL
- CURRENT_USER () rapports comment vous avez été autorisé à authentifier dans MySQL
Si CURRENT_USER () retourne un utilisateur et hôte où l'utilisateur est vide, vous laissiez en tant qu'utilisateur anonyme. À ce moment, vous pouvez supprimer anonymou utilisateurs avec ceci:
DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES;
Maintenant, recherchez tous les utilisateurs sans mot de passe avec ceci:
SELECT user,host,password FROM mysql.user;
Si des utilisateurs ont aucun mot de passe, vous pouvez émettre de nouveaux mots de passe pour l'utilisateur en utilisant mysqladmin ou vous pouvez simplement les affecter comme suit:
UPDATE mysql.user SET password=PASSWORD('whateverpassword') WHERE user='...' AND host='...';
FLUSH PRIVILEGES;
Maintenant, vérifiez pour les utilisateurs distants
SELECT user,host FROM mysql.user WHERE host='%';
Si vous voyez, exécutez ceci:
DELETE FROM mysql.user WHERE host='%';
FLUSH PRIVILEGES;
Assurez-vous que quand tout est dit et fait au moins root @ localhost et / ou root@127.0.0.1 existent et ont un mot de passe
SELECT user,host,password FROM mysql.user WHERE user='root';
Je pourrais probablement continuer. Voici d'autres messages que j'ai sur des choses comme ceci: