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 :

nmap -p 3306 -sV <target>

Résultat attendu :

3306/tcp open  mysql MySQL 8.0.25

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 :

mysql -u <username> -p<password> -h <host>

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

Commande SQL
Description

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 :

Mis à jour