LDAP Injection (Inyección LDAP)
🌐 Vulnerabilidad: LDAP Injection
🕵️♂️ ¿Qué es LDAP Injection?
LDAP Injection es una vulnerabilidad que ocurre cuando un atacante manipula consultas LDAP (Lightweight Directory Access Protocol) para alterar la lógica de búsqueda o autenticación. Esto puede dar acceso no autorizado a sistemas, permitir eludir autenticaciones o modificar registros en un servidor LDAP.
⚙️ ¿Cómo se produce?
Entrada de usuario no validada:
Los datos del usuario se incorporan directamente en consultas LDAP.
Manipulación de la consulta:
El atacante introduce caracteres especiales para modificar la lógica de la consulta.
Ejecución del ataque:
El servidor LDAP procesa la consulta modificada y devuelve resultados no esperados.
🛠️ Mecanismo de ataque
Ejemplo de consulta LDAP básica para autenticación:
Un atacante puede inyectar en <USER_INPUT>
un payload como:
Esto transforma la consulta en:
📌 Resultado: El filtro uid=*
coincide con todos los usuarios, permitiendo eludir la autenticación.
🎯 Impacto
Autenticación eludida: Acceso no autorizado a sistemas y datos.
Exposición de datos sensibles: Obtención de información de usuarios o configuraciones.
Modificación no autorizada: Cambios en atributos de usuarios u objetos.
Escalamiento de privilegios: Acceso a cuentas administrativas o de mayor nivel.
📉 Puntaje CVSS v3
Vector de ataque: Red
Complejidad del ataque: Media
Impacto en confidencialidad: Alto
Impacto en integridad: Alto
Impacto en disponibilidad: Medio
Puntaje CVSS v3: 7.0 - 9.0 (Crítico) 🔥
🧑💻 Ejemplo práctico
Código vulnerable en Java:
Entrada del atacante:
username
=*)(uid=*)
password
= cualquier valor
Consulta generada:
📌 Esto devuelve todos los usuarios, permitiendo el acceso al atacante.
🛡️ ¿Cómo prevenir LDAP Injection?
1️⃣ Validar y sanitizar entradas
Verifica que las entradas de usuario no contengan caracteres especiales como *
, )
, (
, o \
:
2️⃣ Uso de consultas parametrizadas
Utiliza APIs LDAP que admitan parámetros seguros para construir consultas:
3️⃣ Autenticación mediante hash
En lugar de autenticar directamente con LDAP, compara los hashes de contraseñas para evitar consultas sensibles:
4️⃣ Principio de menor privilegio
Configura el servidor LDAP para que las cuentas utilizadas por la aplicación tengan permisos mínimos necesarios.
5️⃣ Registro y monitoreo
Registra y monitorea las consultas LDAP para identificar patrones sospechosos.
6️⃣ Implementar listas blancas
Solo permite atributos y valores que coincidan con un formato predefinido:
💡 Dato extra: Los ataques de LDAP Injection son más comunes en sistemas que usan servicios de directorio para autenticar usuarios, como Active Directory o OpenLDAP.
🚨 Nota importante: La mitigación no solo requiere validación de entradas, sino también configuración segura del servidor LDAP para limitar accesos y operaciones.
Última actualización
¿Te fue útil?