LDAP injection

circle-exclamation

Understanding LDAP Injection

What is LDAP Injection?

LDAP (Lightweight Directory Access Protocol) injection is a security vulnerability that occurs when user-supplied input is incorporated into LDAP statements without proper validation or sanitization. This allows attackers to manipulate LDAP queries to access unauthorized information, bypass authentication, or modify directory data.

Vulnerable Code Example

// PHP vulnerable LDAP authentication
$username = $_POST['username'];
$password = $_POST['password'];

$ldap_filter = "(&(uid=$username)(userPassword=$password))";
$result = ldap_search($ldap_conn, $base_dn, $ldap_filter);

if (ldap_count_entries($ldap_conn, $result) > 0) {
    echo "Authentication successful";
} else {
    echo "Authentication failed";
}

Normal Request:

  • Username: john

  • Password: secret123

  • Filter: (&(uid=john)(userPassword=secret123))

Malicious Request:

  • Username: admin)(&(uid=admin

  • Password: anything

  • Filter: (&(uid=admin)(&(uid=admin)(userPassword=anything))

How LDAP Injection Works

LDAP injection exploits the way applications construct LDAP search filters and bind operations. When user input is directly concatenated into LDAP queries without proper escaping, attackers can inject LDAP special characters to modify the query logic.

LDAP Query Structure

Basic LDAP Filter Syntax:

  • (attribute=value) - Equality filter

  • (!(attribute=value)) - Negation filter

  • (&(filter1)(filter2)) - AND operation

  • (|(filter1)(filter2)) - OR operation

  • (attribute=value*) - Wildcard matching

  • (attribute>=value) - Greater than or equal

  • (attribute<=value) - Less than or equal

Impact and Consequences

  • Authentication Bypass - Access without valid credentials

  • Information Disclosure - Enumeration of directory data

  • Privilege Escalation - Access to administrative accounts

  • Data Modification - Unauthorized changes to directory entries

  • Denial of Service - Malformed queries causing service disruption

LDAP Special Characters and Metacharacters

Understanding LDAP special characters is crucial for both exploitation and defense:

Filter Metacharacters

  • ( - Start of filter

  • ) - End of filter

  • & - AND operator

  • | - OR operator

  • ! - NOT operator

  • * - Wildcard character

  • \ - Escape character

  • = - Equality operator

  • >= - Greater than or equal

  • <= - Less than or equal

  • ~= - Approximate match

Distinguished Name (DN) Special Characters

  • , - Separator between RDN components

  • = - Separator between attribute and value

  • + - Multi-valued RDN separator

  • " - Quoted string delimiter

  • \ - Escape character

  • ; - Alternative separator (deprecated)

  • < - Less than symbol

  • > - Greater than symbol


Detection Methodology

Identifying Vulnerable Parameters

Common LDAP Integration Points

Authentication Systems:

  • Login forms

  • Password reset mechanisms

  • User registration

  • Single Sign-On (SSO) implementations

  • Multi-factor authentication

User Management:

  • User search functionality

  • Profile management

  • Group membership queries

  • Permission verification

  • User enumeration features

Application Integration:

  • Employee directories

  • Contact lists

  • Organizational charts

  • Access control systems

  • Email address lookups

Vulnerable Function Patterns

PHP LDAP Functions:

  • ldap_search()

  • ldap_list()

  • ldap_read()

  • ldap_bind()

  • ldap_compare()

  • ldap_modify()

  • ldap_add()

  • ldap_delete()

Java LDAP Functions:

  • DirContext.search()

  • LdapContext.search()

  • InitialDirContext.search()

  • LdapTemplate.search()

  • LdapTemplate.authenticate()

ASP.NET LDAP Functions:

  • DirectorySearcher.Filter

  • DirectoryEntry.Path

  • PrincipalSearcher.QueryFilter

  • DirectoryServices.Search()

Basic Detection Techniques

Authentication Bypass Testing

AND Logic Bypass:

OR Logic Injection:

Wildcard Injection:

Boolean-Based Testing

True/False Conditions:

Existence Testing:

Error-Based Detection

Syntax Error Injection:

Invalid Filter Testing:

Advanced Detection Techniques

Blind LDAP Injection

Time-Based Detection:

Content-Length Based:

Attribute Enumeration

Common Attribute Testing:

Custom Attribute Discovery:


Authentication Bypass Techniques

AND Logic Manipulation

Basic AND Bypass

Filter Structure Manipulation:

Comment-Based Bypass:

Advanced AND Manipulation

Nested Filter Injection:

OR Logic Exploitation

Basic OR Injection

Always True Conditions:

Multi-User Bypass

Targeting Multiple Accounts:

Wildcard Exploitation

Universal Wildcards

Complete Wildcard Bypass:

Targeted Wildcard Attacks

Specific User Targeting:


Information Disclosure Techniques

User Enumeration

Username Discovery

Alphabetic Enumeration:

Pattern-Based Discovery:

Account Information Extraction

Personal Information:

Organizational Information:

Group and Permission Discovery

Group Membership Enumeration

Administrative Groups:

Department Groups:

Permission Structure Discovery

Access Control Attributes:

Security Clearance:


Application-Specific LDAP Injection

Authentication Systems

Single Sign-On (SSO) Bypass

SAML-Based SSO:

OAuth/OpenID Integration:

Multi-Factor Authentication

MFA Bypass Attempts:

Web Application Integration

User Search Functionality

Directory Search Injection:

Advanced Search Filters:

Profile Management

Profile Update Injection:

Contact Information:

Enterprise Applications

Employee Directory Systems

Employee Lookup Injection:

Organizational Chart:

Customer Relationship Management

Customer Search Injection:


Advanced LDAP Injection Techniques

Blind LDAP Injection Exploitation

Character-by-Character Extraction

Password Enumeration:

Attribute Value Extraction:

Time-Based Extraction

Response Time Analysis:

Content-Length Analysis

Response Size Comparison:

Filter Injection Techniques

Complex Boolean Logic

Nested AND/OR Combinations:

Approximation Attacks

Fuzzy Matching Exploitation:

Range-Based Attacks

Numeric Range Exploitation:

Protocol-Specific Techniques

LDAPS (LDAP over SSL/TLS)

Certificate-Based Attacks:

LDAP Referrals

Referral Manipulation:

Extended Operations

Extended Request Injection:


Platform-Specific LDAP Injection

Active Directory Exploitation

Active Directory Specific Attributes

AD-Specific Enumeration:

Security Identifier (SID) Attacks:

Group Policy and Permissions

Group Policy Object (GPO) Injection:

Access Control List (ACL) Exploitation:

Domain Trust Relationships

Trust Enumeration:

OpenLDAP Exploitation

OpenLDAP Schema Exploitation

Schema Discovery:

Access Control Information (ACI):

OpenLDAP Overlays

ppolicy Overlay Exploitation:

memberof Overlay:

389 Directory Server

389 DS Specific Features

Role-Based Access Control:

Account Policy:

Class of Service (CoS)

CoS Template Discovery:


Web Application Framework Integration

PHP LDAP Integration

PHP-Specific Vulnerabilities

Common PHP LDAP Patterns:

PHP LDAP Injection Payloads:

PHP Framework Integration

Laravel LDAP Integration:

Java/Spring LDAP Integration

Spring LDAP Vulnerabilities

Spring LDAP Template:

Spring Security LDAP:

Java Enterprise Integration

JNDI LDAP Injection:

.NET/ASP.NET LDAP Integration

.NET DirectoryServices Vulnerabilities

DirectorySearcher Injection:

ASP.NET Identity Integration:

Node.js LDAP Integration

Node.js LDAP Libraries

ldapjs Vulnerabilities:

Passport.js LDAP Strategy:

Express.js LDAP Integration

Express Route Vulnerabilities:


Real-World Attack Scenarios

Enterprise SSO Bypass

Corporate Authentication System

Scenario: Large Enterprise SSO

Multi-Domain Environment

Cross-Domain Exploitation:

Customer Portal Exploitation

SaaS Application Attack

Scenario: Multi-Tenant SaaS Platform

E-commerce Platform

Customer Account Takeover:

Internal Directory Exploitation

HR System Attack

Employee Information Extraction:

IT Asset Management

Infrastructure Discovery:


Advanced Evasion Techniques

Filter Encoding and Obfuscation

Character Encoding Methods

URL Encoding:

Unicode Encoding:

HTML Entity Encoding:

Alternative Representations

Case Variation:

Whitespace Manipulation:

Complex Filter Construction

Nested Filter Evasion

Deep Nesting:

Filter Fragmentation:

Timing-Based Evasion

Conditional Delays:

WAF and Filter Bypass

Common WAF Evasion

Keyword Avoidance:

Pattern Breaking:

Length-Based Evasion

Payload Truncation:

Character Limit Bypass:

Last updated

Was this helpful?