Une injection se produit lorsqu’une application laisse des données contrôlées par l’utilisateur modifier le sens d’une commande Shell ou d’une requête de base de données. Ce cours rend cette rupture de frontière concrète grâce à des exercices d’injection de commandes et SQL sur des applications locales volontairement vulnérables.
Vous construirez d’abord les charges manuellement afin de comprendre comment séparateurs, guillemets, commentaires, expressions booléennes et UNION SELECT modifient le comportement. Vous utiliserez ensuite sqlmap pour automatiser détection, énumération du schéma, extraction de données et accès OS shell, avant un défi autonome de compromission de base de données.
Ce que vous apprendrez
- Identifier un point d’injection de commandes et confirmer l’exécution avec des séparateurs Linux.
- Contourner un filtre simple avec échappement et jokers Shell, puis créer un fichier de preuve sur la cible.
- Provoquer une erreur SQL et construire une charge booléenne contournant une connexion vulnérable.
- Déterminer le nombre de colonnes et les positions affichées avec
ORDER BYetUNION SELECT. - Interroger les métadonnées SQLite et extraire des identifiants préparés via la réponse de l’application.
- Utiliser sqlmap pour détecter une SQLi, énumérer les bases, extraire une table et tenter un OS shell interactif.
- Valider seul deux points d’entrée SQLi et exporter une table de clients préparée dans le défi final.
À qui s’adresse ce cours
Ce cours intermédiaire s’adresse aux apprenants en sécurité web qui veulent comprendre le mécanisme des injections avant de dépendre de l’automatisation. Il convient aux futurs pentesteurs, aux étudiants en sécurité applicative et aux développeurs recherchant des exemples concrets des risques liés aux commandes non sécurisées et au SQL dynamique.
Prérequis : Être à l’aise avec un terminal Linux et curl, les requêtes HTTP GET/POST, l’encodage d’URL et les notions SQL élémentaires telles que SELECT, WHERE, colonnes et tables.
Environnement d’apprentissage : Un terminal Ubuntu 22.04 avec sqlmap et des applications web locales, isolées et volontairement vulnérables sur les ports 5000, 8080 et 80. Les commandes et données d’exemple extraites restent dans l’environnement du cours.
Questions fréquentes
Dois-je connaître le SQL avancé avant de commencer ?
Non. Les laboratoires expliquent le contexte de la requête, la logique booléenne, les commentaires, le comptage des colonnes et la séquence UNION SELECT. Le vocabulaire SQL de base facilitera toutefois ces exercices intermédiaires.
Les charges d’injection sont-elles envoyées à de vrais systèmes ?
Non. Chaque cible est une application locale configurée pour l’entraînement. Les commandes, identifiants, dossiers clients et jetons sont des données préparées pour les laboratoires.
Pourquoi apprendre l’injection SQL manuelle avant sqlmap ?
Les exercices manuels montrent comment l’entrée transforme la syntaxe et comment les colonnes affichées divulguent des données. Vous pouvez ainsi interpréter les techniques de sqlmap et cadrer son énumération plutôt que de traiter sa sortie comme une boîte noire.
Le cours permet-il d’exécuter des commandes du système d’exploitation ?
Oui, dans les laboratoires isolés. L’exercice d’injection exécute des commandes Linux choisies et celui sur sqlmap guide l’utilisation de --os-shell contre une cible PHP préparée. Rien ne dépasse l’environnement local.





