Question

Abordant un scénario étrange ici.

Nous utilisons une application de gestion de poste de travail propriétaire qui utilise mySQL pour stocker ses données. Dans l'application, ils fournissent le nombre de rapports, tels que l'utilisateur connecté à quelle machine à quelle heure, tous les produits logiciels installés sur les machines surveillées, etc. Nous souhaitons créer un ensemble de rapports différent. Toutefois, ils ne prennent pas en charge les rapports personnalisés.

Puisque leurs données sont stockées dans MySQL, je suppose que je peux faire le reporting manuellement. Je n'ai pas d'informations d'identification valides pour me connecter au serveur MySQL cependant. Puis-je quand même créer un compte utilisateur sur le serveur MySQL? Je ne souhaite pas réinitialiser le mot de passe root ni aucun compte susceptible de s'y trouver, car cela pourrait endommager l'application.

J'ai un accès complet au serveur Windows 2003. Je peux arrêter et redémarrer des services, y compris le serveur MySQL. Sur le serveur mySQL actuel, je n’ai qu’un accès de base via l’interface graphique fournie par le logiciel. Je ne peux pas me connecter directement via CLI ou via un autre outil (en raison du manque d'informations d'identification).

Je m'excuse si cela s'est passé comme si j'essayais d'obtenir un accès non autorisé au serveur MySQL. J'ai contacté la société de logiciels et à ce jour, cela fait deux semaines sans réponse de leur part. J'ai besoin d'obtenir les données. J'ai un accès complet à la boîte physique, j'ai les privilèges d'administrateur dessus.

Était-ce utile?

La solution

Vous voudrez utiliser le processus de récupération de mot de passe MySQL. Suivez ces instructions , sauf remplacer la requête de réinitialisation du mot de passe par une requête sur ajouter un nouvel utilisateur . La nouvelle requête utilisateur ressemblerait à quelque chose comme:

GRANT ALL ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

Cela créera un nouvel utilisateur " myuser " avec le mot de passe "mypassword", qui peut se connecter à MySQL via la CLI du système local. Vous pouvez ensuite utiliser l'interface utilisateur graphique de l'administrateur MySQL ( télécharger ici ) et la mettre à jour. les autorisations utilisateur afin que vous puissiez vous connecter à partir d'autres systèmes du réseau. Ou utilisez l'instruction GRANT . de la CLI, si c'est plus votre style.

Autres conseils

Avez-vous accès au serveur MySQL en question?

Comme dans, quel accès avez-vous au-delà de ce qu'un utilisateur régulier aurait? Vous devez essayer de suivre ces itinéraires avant de "hack". votre chemin, car cela peut ou non être réalisable avec ce logiciel.

Il y a des chances que la base de données soit à l'origine de déclencheurs. Ainsi, lorsque vous vous piratez dans la base de données, ils sauront quand et comment vous l'avez fait. Pas une bonne idée.

Je suppose que je ne devrais vraiment pas répondre à cette question, mais c'est trop amusant.

Consultez la page sur les injections SQL. Cela devrait couvrir vos besoins. Cette page explique comment ajouter des comptes d'utilisateurs à mySQL.

Je voudrais saisir les informations suivantes dans des champs de saisie utilisateur aléatoires:

p'; INSERT INTO user VALUES

('localhost', 'myNewAdmin', PASSWORD ('some_pass'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y' ',' Y ');

et ensuite

p'; FLUSH PRIVILEGES;

p '; est destiné à fermer la question régulière. par exemple - La question normale est:

"Select Adress from cusomers where custName = ' + $INPUT + ';

devient

    Select Adress from cusomers where custName = 'p'; INSERT INTO user 
VALUES('localhost','myNewAdmin',PASSWORD('some_pass'), 
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); 

Une chose qui vient à l’esprit est de renifler la communication de la base de données en espérant qu’elle n’est pas cryptée. S'il est crypté, essayez de changer la configuration pour ne pas utiliser SSL et redémarrez mysql. Un bon renifleur que j'utilise est le Wireshark

.

De la documentation de mysql 5.0 :

  

MySQL prend en charge sécurisé (chiffré)   les connexions entre les clients MySQL et   le serveur utilisant Secure Sockets   Protocole de couche (SSL). Cette section   explique comment utiliser les connexions SSL.   Il décrit également un moyen de configurer SSH   sous Windows. Pour savoir comment   obliger les utilisateurs à utiliser des connexions SSL,   voir la discussion de la REQUIRE   clause de la déclaration GRANT dans   Section 12.5.1.3, «Syntaxe GRANT».

     

La configuration standard de MySQL est   destiné à être aussi rapide que possible, afin   les connexions chiffrées ne sont pas utilisées par   défaut. Cela ferait la   protocole client / serveur beaucoup plus lent.   Le cryptage des données demande beaucoup de ressources de calcul   opération qui nécessite l'ordinateur   faire du travail supplémentaire et peut retarder   autres tâches MySQL. Pour les applications   qui nécessitent la sécurité fournie par   connexions cryptées, le supplément   le calcul est justifié.

     

MySQL permet d'activer le cryptage   sur une base par connexion. Vous pouvez   choisissez une connexion normale non chiffrée   ou une connexion SSL cryptée sécurisée   selon les exigences de   applications individuelles.

     

Les connexions sécurisées sont basées sur le   OpenSSL API et sont disponibles via   l'API MySQL C. La réplication utilise le   C API, des connexions sécurisées peuvent donc être   utilisé entre les serveurs maîtres et esclaves.

Vous l’avez probablement déjà fait mais essayez quand même de chercher dans les fichiers de configuration des applications. S'il n'y a rien - essayez de chercher dans les exécutables / le code source - c'est peut-être en texte clair si vous avez de la chance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top