sábado, abril 19, 2008

Jugando con LDAP (II de III)


***************************************************************************************
- Jugando con LDAP (I de III)
- Jugando con LDAP (II de III)
- Jugando con LDAP (III de III)
***************************************************************************************

ADAM

¿Y qué pasa con ADAM si recibe dos filtros LDAP en un único mensaje? La respuesta a esto es fácil de comprobar. Vamos a hacer exactamente el mismo proceso que con OpenLDAP. En este caso nos vamos a conectar al árbol LDAP del RetoHacking IV para ver que sucede y vamos a lanzar dos filtros en un único mensaje. En este caso; (uid=*)(uid=*).

Como se puede ver en la captura la herramienta LDAP Browser nos da un error de conexión con el servidor LDAP ¿Qué es lo que ha pasado realmente?

2 Filtros a ADAM

Para saber que ha pasado por debajo vamos a utilizar un sniffer y vemos que se intercambian. Al utilizar WireShark y capturar la respuesta que da ADAM a esta situación obtenemos un mensaje de error que dice:

"LdapErr: DSID-0C 0C0B4C: The server was unable to decode a search request attribute description list, the filter may have been invalid"

Error y Desconexión

Además, el servidor ADAM nos manda un mensaje de desconexión que es lo que LDAP Browser nos muestra como que no se puede conectar con el servidor.

SunOne Directory Server 5.0

En el paper de Sacha Faust sobre LDAP Injection, las pruebas realizas sobre él y que vienen documentadas, muestran que el comportamiento de este servidor era diferente y ante la llegada de dos filtros LDAP en un único mensaje el servidor ejecuta ambos y devuelve la lista completa de objetos en un única lista.

Ejemplo en SUN

Resumen de Implementaciones

Tras ver esto nos queda que cuando llega un mensaje con dos filtros LDAP a una implementación OpenLDAP este ejecuta sólo el primero, cuando llega a ADAM nos da un mensaje de error y nos desconecta y cuando llega a un SUN Directory Server 5.0 se ejecutan ambos. Curioso, tres implementaciones distintas con tres comportamientos distintos. Esto hará que los entornos de inyección en aplicaciones web con LDAP Injection sean totalmente dispares. ¿Es esto todo? No, aun tenemos alguna curiosidad más.

Saludos Malignos!

***************************************************************************************
- Jugando con LDAP (I de III)
- Jugando con LDAP (II de III)
- Jugando con LDAP (III de III)
***************************************************************************************

3 comentarios:

  1. Hecho de menos el Ldap de Red Hat en esta "comparativa". qué pasa, ¿no lo usa nadie?

    ResponderEliminar
  2. kernel

    muy bueno chema, esta informacion suele ser muy valiosa

    ResponderEliminar
  3. @anonimo, creo que RH se basa en OpenLDAP, no?

    gracias Kernel!

    ResponderEliminar