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 :

  1. L’utilisateur entre ses identifiants sur l'application web.

  2. L’application contacte le serveur LDAP, recherche l'utilisateur, et vérifie le mot de passe.

  3. 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 les uid 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