MySQL
Database SQL (MySQL) : Guide Complet avec Commandes SQL Fondamentales
⚠️ Avertissement : Ce contenu est strictement destiné à un usage éducatif et éthique dans le domaine de la cybersécurité. Toute utilisation illégale ou malveillante est interdite et engage la seule responsabilité de l’utilisateur.
Introduction
Ce guide couvre non seulement les aspects d’un pentest MySQL (énumération, récupération de données sensibles, exploitation), mais inclut également les commandes SQL fondamentales pour manipuler les bases de données. L’objectif est d’avoir une vue complète des techniques de base et avancées pour interagir avec MySQL, que ce soit pour des opérations légitimes ou des tests de sécurité (dans un cadre légal et éthique).
🚀 Étape 1 : Préparer l'Accès à MySQL
1.1 Identifier le Port et la Version de MySQL
Nmap pour détecter MySQL :
Résultat attendu :
Ce résultat indique que MySQL est actif sur le port 3306 et affiche sa version.
1.2 Tester l’Accès avec des Identifiants
Si des identifiants sont disponibles, connectez-vous :
Essayez également des mots de passe par défaut comme root
, password
, ou vide.
1.3 Brute-Force des Identifiants
Si les identifiants sont inconnus : Hydra :
Medusa :
🔍 Étape 2 : Commandes Fondamentales SQL
Ces commandes permettent de manipuler directement les bases et leurs données.
2.1 Lister les Bases de Données
Commande :
Exemple de sortie :
2.2 Sélectionner une Base de Données
Pour travailler avec une base spécifique :
Exemple :
2.3 Lister les Tables d'une Base
Affichez les tables disponibles dans une base :
Exemple de sortie :
2.4 Afficher la Structure d'une Table
Pour examiner les colonnes, types et clés :
Exemple :
Exemple de sortie :
2.5 Ajouter des Données dans une Table
Insérez une nouvelle ligne :
Exemple :
2.6 Modifier des Données
Pour mettre à jour des valeurs spécifiques :
Exemple :
2.7 Supprimer des Données
Supprimer une ligne spécifique :
Exemple :
Supprimer toutes les lignes d’une table :
🛠️ Étape 3 : Énumération des Utilisateurs et des Privilèges
3.1 Lister les Utilisateurs MySQL
Commande :
Exemple de sortie :
3.2 Vérifier les Privilèges d’un Utilisateur
Commande :
Exemple :
Exemple de sortie :
🔍 Étape 4 : Exploitation et Recherche de Données Sensibles
4.1 Lire les Données d'une Table
Affichez le contenu d’une table (limité à 10 lignes) :
Exemple :
4.2 Identifier des Données Sensibles
Rechercher des identifiants ou mots de passe :
Obtenir des emails :
4.3 Exploiter les Privilèges
Lire des fichiers système (si FILE est activé) :
Écrire un fichier sur le serveur :
🔧 Étape 5 : Exporter et Restaurer une Base de Données
5.1 Exporter une Base avec mysqldump
Sauvegardez une base entière :
Exemple :
5.2 Restaurer une Base
Pour importer un fichier de sauvegarde :
Exemple :
🔒 Étape 6 : Contre-Mesures et Sécurisation
6.1 Restreindre les Permissions
Supprimez les privilèges inutiles :
6.2 Restreindre l'Accès Réseau
Dans /etc/mysql/my.cnf
, assurez-vous que l’adresse est limitée à localhost
:
6.3 Désactiver les Comptes Inutilisés
Supprimez les utilisateurs anonymes ou inactifs :
Résumé des Commandes Clés
SHOW DATABASES;
Liste toutes les bases de données.
SHOW TABLES;
Liste les tables dans la base active.
DESCRIBE <table_name>;
Montre la structure d'une table.
SELECT * FROM <table_name> LIMIT 10;
Affiche les 10 premières lignes d'une table.
INSERT INTO <table_name> ...
Ajoute une nouvelle ligne dans une table.
UPDATE <table_name> SET ...
Met à jour des valeurs existantes.
DELETE FROM <table_name>;
Supprime des lignes spécifiques ou toute une table.
Conclusion
Ce guide combine les techniques d’un pentest MySQL (énumération, exploitation) avec les bases essentielles de manipulation SQL. Il est destiné à fournir une vision complète, que ce soit pour explorer des vulnérabilités ou interagir avec une base dans un cadre éthique et légal. Toujours travailler avec des permissions explicites et sécuriser vos systèmes après un audit.
Liens utiles :
Dernière mise à jour