Web — vulnérabilités complémentaires · guide pratique V13
Injection LDAP
Vérifier que les entrées ne modifient pas la structure d’un filtre LDAP.
En bref
But : Vérifier que les entrées ne modifient pas la structure d’un filtre LDAP.
Livrable : une requête reproductible, une preuve HTTP et une correction vérifiable
Cadre : laboratoire isolé ou mandat écrit, avec une charge et des seuils d’arrêt définis.
Vue synthétique de « Injection LDAP » : les blocs représentent les étapes et preuves propres à ce contrôle.
Comprendre le risque
La surface à examiner comprend authentification annuaire, recherche, groupes et filtres dynamiques. Le test doit préciser le contexte d’entrée, la couche qui interprète la donnée et la conséquence observée. Une anomalie de syntaxe n’est pas automatiquement une vulnérabilité : il faut démontrer une différence de sécurité ou de confidentialité.
Préparer le laboratoire
Utiliser une application locale ou une copie dédiée avec des comptes synthétiques.
Activer les journaux du proxy, de l’application et de la base lorsque cela est pertinent.
Fixer un nombre maximal de requêtes et un seuil d’arrêt avant le test.
Créer un répertoire de preuves et noter la version des composants.
Procédure de validation
Identifier précisément le point d’entrée concerné par « Injection LDAP ».
utiliser des caractères spéciaux LDAP dans un annuaire de laboratoire et comparer le filtre journalisé
Comparer une requête de référence et une requête modifiée avec un seul changement à la fois.
Confirmer le résultat depuis une seconde source : journal, réponse backend, état de l’objet ou test avec un autre compte.
Revenir à l’état initial et répéter après correction.
Commandes et aide
La commande suivante ne cherche pas à exploiter la vulnérabilité. Elle prépare une capture reproductible et un identifiant de corrélation pour les journaux. Le point est ici appliqué au cas « Injection LDAP ».
mkdir -p preuves
# Cible locale ou explicitement autorisée
export TARGET="http://127.0.0.1:8080"
# Conserver les en-têtes et la réponse d’un contrôle bénin
curl -sS -D "preuves/injection_ldap-headers.txt" \
-o "preuves/injection_ldap-body.txt" \
"$TARGET/"
# Ajouter un marqueur de corrélation sans effet métier
curl -sS -H "X-Lab-Test: V13-injection_ldap" "$TARGET/" -o /dev/null
Pour les requêtes complexes, enregistrer la requête brute depuis Burp ou ZAP et l’archiver avec l’heure UTC. Éviter les charges tirées d’une cheatsheet tant que le contexte de parsing n’est pas compris. Le point est ici appliqué au cas « Injection LDAP ».
Lire les résultats
Un résultat positif doit montrer une différence de sécurité reproductible, pas seulement une erreur 500.
Un résultat négatif reste limité aux chemins, rôles, encodages et versions réellement testés.
Les réponses de proxy, CDN ou WAF doivent être distinguées de celles de l’application.
Documenter les faux positifs liés aux pages personnalisées, redirections et caches.
Correction et retest
échapper selon RFC 4515, utiliser des APIs sûres et limiter les attributs recherchés
Le retest reprend exactement la requête de preuve, vérifie que le comportement dangereux a disparu et contrôle qu’aucune régression métier n’a été introduite. Le point est ici appliqué au cas « Injection LDAP ».
Comprendre le sujet avant d’agir
Le chapitre « Injection LDAP » appartient au domaine « Web vulnerabilites complementaires ». Il doit permettre de comprendre le mécanisme avant d’utiliser un outil, puis de produire une preuve lisible par une autre personne. L’objectif n’est pas d’accumuler des commandes : chaque action doit répondre à une hypothèse, rester dans le périmètre et déboucher sur une conclusion vérifiable.
Dans ce contexte, l’attention porte surtout sur les objets AD concernés, les relations de contrôle, l’héritage des ACL et les dépendances entre domaines, hôtes et identités. Une approche professionnelle commence par noter l’état initial, la version des composants et l’identité utilisée. Elle se termine par la conservation des sorties utiles, l’explication des limites et la vérification que le laboratoire a été remis dans son état prévu.
Point de contrôle — objet source et objet cible.
Point de contrôle — relation ou droit observé.
Point de contrôle — portée de l’héritage.
Point de contrôle — compte utilisé pour la collecte.
Point de contrôle — confirmation par une seconde source AD ou un journal.
Méthode de vérification croisée
La méthode suivante transforme « Injection LDAP » en exercice reproductible. Elle évite de confondre la quantité de sorties avec la qualité de la preuve et permet d’arrêter le test dès que l’objectif est démontré.
Définir en une phrase ce que l’exercice « Injection LDAP » doit confirmer ou infirmer.
Relever l’état initial du laboratoire et les versions utiles au domaine « Web vulnerabilites complementaires ».
Collecter les attributs et relations en lecture seule avec un compte dédié et journalisé.
Exécuter une seule variation à la fois et conserver la sortie brute avec un horodatage UTC.
Confirmer les relations importantes dans l’annuaire, une GPO, un journal ou un second outil.
Documenter l’impact, les limites, la correction proposée et le critère de retest.
Exemple guidé dans le laboratoire
Montez un petit domaine `lab.local` avec un contrôleur de domaine, un poste membre et deux comptes de test. Pour « Injection LDAP », effectuez une collecte en lecture seule, exportez les relations utiles, puis vérifiez manuellement une relation dans les propriétés AD ou une GPO.
Le cas est réussi lorsqu’un chemin ou un droit peut être expliqué objet par objet. Le rapport doit distinguer la possibilité théorique, les préconditions, l’impact réel et la correction la moins perturbante.
Préparation — confirmer les actifs et comptes autorisés pour « Injection LDAP ».
Exécution — limiter l’action à une seule hypothèse et une seule variation.
Validation — reproduire le résultat et conserver la sortie brute.
Clôture — nettoyer les artefacts, documenter les limites et définir le retest.
Lecture des commandes et options
Les commandes déjà présentes dans « Injection LDAP » doivent être lues comme des exemples de laboratoire. Les lignes suivantes expliquent leur rôle afin d’éviter une exécution aveugle.
`mkdir -p preuves` — cette ligne participe à l’exercice « Injection LDAP » ; vérifiez ses arguments et exécutez-la uniquement sur les données ou cibles du laboratoire.
`export TARGET="http://127.0.0.1:8080"` — cette ligne participe à l’exercice « Injection LDAP » ; vérifiez ses arguments et exécutez-la uniquement sur les données ou cibles du laboratoire.
`curl -sS -D "preuves/injection_ldap-headers.txt" \` — envoie une requête HTTP ; conservez les en-têtes, le corps et le code de statut afin de comparer les réponses.
`-o "preuves/injection_ldap-body.txt" \` — cette ligne participe à l’exercice « Injection LDAP » ; vérifiez ses arguments et exécutez-la uniquement sur les données ou cibles du laboratoire.
`"$TARGET/"` — cette ligne participe à l’exercice « Injection LDAP » ; vérifiez ses arguments et exécutez-la uniquement sur les données ou cibles du laboratoire.
Interpréter un chemin de privilèges
Pour « Injection LDAP », un résultat utile relie au minimum le contexte, l’action et l’observation. Une sortie d’outil isolée reste une indication : elle devient une preuve lorsque le périmètre, la version, les paramètres et la reproduction sont documentés.
La conclusion doit préciser ce qui est confirmé, ce qui reste probable et ce qui n’a pas été testé. Dans le profil « ad », les éléments à rapprocher sont notamment : objet source et objet cible, relation ou droit observé, portée de l’héritage. Les autres éléments servent à expliquer la portée et à préparer le retest.
Élément à documenter — objet source et objet cible.
Élément à documenter — relation ou droit observé.
Élément à documenter — portée de l’héritage.
Élément à documenter — compte utilisé pour la collecte.
Élément à documenter — confirmation par une seconde source AD ou un journal.
Erreurs fréquentes et amélioration de la qualité
Les erreurs ci-dessous sont particulièrement importantes pour « Injection LDAP ». Elles produisent des faux positifs, des conclusions impossibles à reproduire ou un risque inutile pour le laboratoire.
À éviter — prendre un chemin théorique pour une compromission confirmée.
À éviter — ignorer les groupes imbriqués et les héritages.
À éviter — collecter plus d’attributs que nécessaire.
À éviter — oublier les trusts ou délégations.
À éviter — proposer une correction sans mesurer son impact sur l’exploitation.
Checklist avant de clôturer le chapitre
Cette checklist résume les contrôles attendus pour considérer « Injection LDAP » comme terminé de manière professionnelle.
L’objectif et le périmètre de « Injection LDAP » sont écrits.
La version des outils et composants est enregistrée.
La commande, le filtre ou la procédure exacte est conservé.
La sortie brute est horodatée et accompagnée de son contexte.
Le résultat a été confirmé par une seconde observation.
Les limites et les éléments non testés sont explicites.
Les artefacts créés ont été supprimés ou remis dans l’état convenu.
La recommandation et le critère de retest sont exploitables.
Pour maîtriser « Injection LDAP », retenez trois idées : comprendre les objets AD concernés, les relations de contrôle, l’héritage des ACL et les dépendances entre domaines, hôtes et identités, exécuter une méthode limitée et reproductible, puis transformer la sortie en preuve contextualisée. Le chapitre est terminé lorsque le résultat peut être confirmé, que ses limites sont explicites et que la correction peut être retestée sans réinterpréter toute la mission.
Savoir expliquer le mécanisme propre à « Injection LDAP » sans réciter une commande.
Conserver au minimum objet source et objet cible, relation ou droit observé et portée de l’héritage.
Éviter en priorité de prendre un chemin théorique pour une compromission confirmée et de ignorer les groupes imbriqués et les héritages.
Proposer une action corrective mesurable et un retest réalisable.