1 LDAP Injection Mechanics
LDAP (Lightweight Directory Access Protocol) is used for authentication in enterprise environments. When filter strings are built by concatenating user input, attackers can inject LDAP metacharacters to alter query logic.
LDAP special characters: ( ) | & = * \ NUL
Vulnerable example (Java):
String filter = "(&(uid=" + username + ")(userPassword=" + password + "))";
NamingEnumeration results = ctx.search("ou=users,dc=example,dc=com", filter, controls);An attacker can send username admin)(&( to produce the filter (&(uid=admin)(&()(userPassword=anything)), which matches regardless of the password.
The * wildcard enables enumeration: sending a* as username matches all users starting with "a".