LDAP injection
Qu'est-ce que LDAP ?
LDAP (Lightweight Directory Access Protocol) est un protocole qui permet de gérer, chercher, et centraliser les informations d'un grand nombre d’utilisateurs, ordinateurs, groupes, et autres objets dans un réseau d’entreprise. C'est très utile pour centraliser les informations et les rendre facilement accessibles aux différentes applications, tout en offrant une gestion simple et rapide des accès et des permissions.
Pourquoi LDAP est-il utile ?
LDAP permet une authentification unique (Single Sign-On) et une gestion centralisée des informations. En utilisant un seul serveur LDAP, les administrateurs peuvent gérer tous les utilisateurs et leurs droits d'accès de manière centralisée, ce qui simplifie énormément la gestion des identifiants et des accès au sein d’une organisation.
Utilisation de LDAP pour l’authentification dans les applications web
Dans une application web, LDAP est souvent utilisé pour vérifier les identifiants des utilisateurs. Voici le processus général :
L’utilisateur entre ses identifiants sur l'application web.
L’application contacte le serveur LDAP, recherche l'utilisateur, et vérifie le mot de passe.
En cas de correspondance, l’accès est accordé, et l'application peut aussi récupérer des informations de groupe ou de rôle pour gérer les permissions.
LDAP peut être utilisé avec SSL/TLS pour chiffrer les connexions (LDAPS) et assurer une sécurité accrue.
Configuration d'une application pour utiliser LDAP
Pour intégrer LDAP, une application web doit :
Se connecter au serveur LDAP et interagir avec lui de manière sécurisée.
Configurer des paramètres de recherche et d'authentification LDAP (par exemple, indiquer la hiérarchie de recherche et les attributs d'authentification).
Vérifier les rôles et groupes des utilisateurs, si nécessaire, pour gérer les accès dans l'application.
Résumé de la terminologie LDAP
Voici les principaux termes liés à LDAP :
Directory Server (DS) : C'est le serveur qui stocke les données, semblable à un serveur de base de données. Un exemple est OpenLDAP.
LDAP Entry : Une entrée LDAP représente une entité et comprend trois composants principaux :
Distinguished Name (DN) : Un identifiant unique composé de plusieurs Relative Distinguished Names (RDNs), comme
uid=admin,dc=hackthebox,dc=com
.Attributs : Ce sont des paires type-valeur qui stockent les données, comme un nom, un email, etc.
Object Classes : Des types d'objets (comme Person ou Group) définissant des ensembles d'attributs associés.
Opérations LDAP
LDAP offre plusieurs opérations que les clients peuvent initier :
Bind : Authentification du client sur le serveur.
Unbind : Fermeture de la connexion.
Add, Delete, Modify : Créer, supprimer, ou modifier une entrée.
Search : Rechercher des entrées correspondant à des critères spécifiques.
Syntaxe des filtres de recherche LDAP
Les filtres de recherche LDAP utilisent des opérandes comme :
Égalité (=) :
(name=Kaylie)
pour trouver tous les noms "Kaylie".Supérieur ou égal (>=) et Inférieur ou égal (<=) :
(uid>=10)
pour tous lesuid
supérieurs ou égaux à 10.Correspondance approximative (~=) :
(name~=Kaylie)
pour un nom proche de "Kaylie".
Pour des recherches complexes, LDAP supporte des opérateurs combinés :
And (&) :
(&(name=Kaylie)(title=Manager))
pour un nom "Kaylie" et titre "Manager".Or (|) :
(|(name=Kaylie)(title=Manager))
pour un nom "Kaylie" ou titre "Manager".Not (!) :
(!(name=Kaylie))
pour exclure le nom "Kaylie".
Des recherches avec des caractères génériques sont également possibles, par exemple (name=K*)
pour tous les noms commençant par "K".
Types d'attributs courants
Les attributs communs dans LDAP incluent :
cn (Nom complet)
givenName (Prénom)
sn (Nom de famille)
uid (ID utilisateur)
mail (Adresse email)
ou (Unité organisationnelle)
title (Titre)
telephoneNumber (Numéro de téléphone)
userPassword
description
member
objectClass
Ces attributs peuvent être personnalisés selon les besoins du serveur LDAP.
En résumé, LDAP utilise des entrées structurées et un ensemble d'opérations permettant de gérer et de rechercher efficacement les données des utilisateurs et ressources dans un réseau.
Last updated