Inyección LDAP C #

2

¿La clase C # DirectoryEntry vulnerable a la inyección LDAP de los parámetros de su constructor?

Por ejemplo:

DirectoryEntry de = new DirectoryEntry(path, username, txtPassword.Text, AuthenticationTypes.Secure);

DirectorySearcher search = new DirectorySearcher(de);
search.Filter = "(ACName=" + username + ")";
search.SearchScope = SearchScope.Subtree;
search.CacheResults = false;
...

Sé que es vulnerable a la inyección de LDAP en search.Filter , si la aplicación acepta la entrada del usuario sin codificación / validación y se establece en search.Filter .

¿Causará alguna vulnerabilidad de Inyección LDAP en los parámetros del constructor DirectoryEntry como la ruta, el nombre de usuario, la contraseña si no validé / codifiqué la entrada del usuario y la pasé directamente al constructor?

¿Hay algún otro punto de inyección LDAP que deba tener cuidado cuando utilizo la información del usuario?

    
pregunta overshadow 06.10.2015 - 09:48
fuente

2 respuestas

0

Los valores que proporciona al constructor se utilizan para seleccionar el directorio y autenticar. No hay consultas realizadas, que yo sepa, lo que hace que la posibilidad de inyección LDAP sea imposible.

Sin embargo, si está paranoico como yo, sugeriría realizar la inyección a mano en las consultas (para saber cómo se realiza) y, si tiene éxito, intente inyectar los parámetros DirectoryEntry .

    
respondido por el BrunoMCBraga 06.10.2015 - 14:29
fuente
0

Por supuesto que es inyectable, por ejemplo. si toma parte del DN del dominio a partir de la entrada del usuario, obviamente podrían cambiar el resto de la ruta y apuntar a un dominio diferente, o a una rama específica del árbol de dominios.

Esto provocaría que la búsqueda de directorio correspondiente se basara en cualquier entrada que el malusor le haya indicado, lo que a su vez podría provocar resultados diferentes según su búsqueda. P.ej. puede volver y autorizar al usuario incorrecto, porque esperaba buscar dentro de un dominio o unidad organizativa diferente.

    
respondido por el AviD 28.08.2017 - 14:47
fuente

Lea otras preguntas en las etiquetas