Présentation sur SQLMap et les attaques par injection
SQL
Introduction à l'injection SQL
L'injection SQL est une méthode d’attaque qui cible les bases de données d’applications web
en insérant des instructions SQL malveillantes dans des champs de saisie ou des URL
vulnérables. Cette technique permet aux attaquants de contourner les mécanismes
d’authentification, de voler des données ou de compromettre le système.
SQLMap : outil d’automatisation des injections SQL
SQLMap est un outil open-source puissant qui automatise le processus de détection et
d'exploitation des vulnérabilités SQL. Il simplifie l'exécution des attaques par injection SQL
grâce à ses nombreuses options permettant de tester différents types d'injections, d'extraire
des bases de données et de compromettre un site vulnérable.
Analyse des étapes du site de test
Étape 1 : Accéder à la page d'accueil
Dans la première capture d'écran, vous êtes sur la page d'accueil du site. Cette page affiche
un message d'accueil pour tester les vulnérabilités.
URL : [Link]
Action :
Vous avez probablement exploré les différentes options du menu comme 'categories',
'artists', etc.
Étape 2 : Naviguer vers les catégories
Dans la deuxième capture d'écran, vous êtes sur la page des catégories qui liste plusieurs
types d'art, tels que :
- Posters
- Paintings
- Stickers
- Graffiti
URL : [Link]/[Link]
Action :
Vous avez cliqué sur le lien 'Browse categories' ou une autre option menant à cette page.
Étape 3 : Sélectionner une catégorie
Dans la troisième capture d'écran, vous avez sélectionné une catégorie spécifique (par
exemple, 'Posters'). Cette page affiche une liste d'éléments associés à cette catégorie, avec
des informations telles que :
- Les noms des œuvres ('The shore', 'Mistery', etc.)
- Le peintre associé à chaque œuvre
- Un lien pour commenter chaque œuvre
URL : [Link]/[Link]?cat=1
Action :
Vous avez cliqué sur une catégorie depuis la page précédente, par exemple, en sélectionnant
'Posters'.
Conseils pour les tests de pénétration
Si vous souhaitez exploiter davantage ce site dans le cadre de tests de pénétration (par
exemple, chercher des vulnérabilités comme des injections SQL ou XSS), je peux vous
fournir des conseils détaillés pour analyser chaque étape en termes de sécurité.
Description des commandes utilisées
Commande :
sqlmap -u [Link]
Explication : Cette commande analyse l'URL spécifiée pour détecter des vulnérabilités
d'injection SQL. Le paramètre `cat=1'` est utilisé pour provoquer une éventuelle erreur SQL.
Objectif : Identifier si l’application est vulnérable à l’injection SQL.
Commande :
sqlmap -u [Link] --dbs
Explication : Le paramètre `--dbs` demande à SQLMap d’énumérer toutes les bases de
données accessibles sur le serveur.
Objectif : Une liste des bases de données disponibles sur le serveur vulnérable.
Commande :
sqlmap -u [Link] -D acuart –tables
Explication : Cette commande cible spécifiquement la base de données `acuart` et énumère
toutes ses tables.
Objectif : Explorer la structure de la base de données identifiée.
Commande :
sqlmap -u [Link] -D acuart -T users –columns
Explication : SQLMap identifie les colonnes de la table `users` dans la base de données
`acuart`.
Objectif : Obtenir des informations sur les colonnes contenant des données potentiellement
sensibles comme les noms d’utilisateurs ou les mots de passe.
Commande :
sqlmap -u [Link] -D acuart -T users –dump
Explication : Le paramètre `--dump` extrait toutes les données de la table `users` de la base
de données `acuart`.
Objectif : Récupérer les informations stockées dans la table (par exemple, les identifiants
des utilisateurs).
Chemen
/home/kali/.local/share/sqlmap/output/[Link]
Le chemin /home/kali/.local/share/sqlmap/output/[Link] fait référence au
répertoire où SQLMap stocke les résultats de ses analyses pour le domaine ou l'URL spécifié
([Link] dans ce cas).
Commande :
sqlmap -u [Link] -D acuart --dump
Explication : Cette commande extrait toutes les données de la base de données `acuart`.
Objectif : Obtenir une vue complète de toutes les tables et des données qu'elles contiennent.
Chemen
/home/kali/.local/share/sqlmap/output/[Link]/dump/acuart/[Link]
Exécution manuelle d'une injection SQL
Pour exécuter une attaque manuelle :
1. Identifier une vulnérabilité : Insérer des caractères spéciaux dans un champ de saisie ou
une URL pour générer une erreur SQL (ex. : `' OR '1'='1`).
2. Analyser les réponses : Observer les messages d'erreur ou les comportements inhabituels
de l’application.
3. Extraire les données : Utiliser des commandes SQL manuelles, comme `UNION SELECT`,
pour combiner les résultats d’autres tables avec ceux de la requête originale.
Exemple :
[Link] UNION SELECT null, username,
password FROM users --
Prévention des injections SQL
- Utilisation de requêtes paramétrées : Les requêtes préparées avec des paramètres évitent
l’interprétation directe des entrées utilisateur.
- Validation des entrées : S'assurer que toutes les données saisies par les utilisateurs sont
strictement validées.
- Chiffrement des données sensibles : Les mots de passe et autres données critiques doivent
être chiffrés.
- Utilisation de pare-feu applicatifs (WAF) : Ils aident à détecter et bloquer les attaques en
temps réel.
- Mises à jour régulières : Maintenir les systèmes et bibliothèques à jour pour corriger les
failles connues.
Conclusion
SQLMap est un outil puissant pour démontrer les vulnérabilités d'injection SQL, mais il
souligne également l'importance de sécuriser les applications web. Les meilleures pratiques
de codage et les mécanismes de défense sont essentiels pour protéger les données et
l'intégrité des systèmes.