Introducción a la inyección de LDAP

Se supone que la aplicación web en estos días es mucho más que la plataforma que procesa las consultas del usuario. En el período anterior, la aplicación web tenía que ver con el lugar donde los usuarios pueden venir a hacer su trabajo y cerrar sesión, y para cuando cierran la sesión, la aplicación deja de funcionar. Pero en estos días la aplicación web tiene que funcionar incluso si el usuario no la está utilizando, lo que podría implementarse utilizando cookies. Facebook ha confirmado recientemente que usan cookies para verificar las actividades de los usuarios para asegurarse de que su sistema no esté siendo abusado. Entonces, en el momento en que las aplicaciones en línea tienen que ser más potentes, la seguridad de la aplicación encabeza la lista de requisitos. Aquí nos centraremos en un tipo de modo de ataque cibernético que debe ser atendido para garantizar la seguridad del sistema.

¿Qué es la inyección de LDAP?

  • LDAP significa Protocolo ligero de acceso a directorios. Se puede definir como un protocolo que es neutral para el proveedor y funciona en la capa sobre la pila TCP / IP. Se utiliza para introducir el mecanismo de verificación y autenticación de autoridad en la aplicación web para garantizar su seguridad y se usa con mucha frecuencia durante el desarrollo de aplicaciones web. LDAP se usa con mucha frecuencia en las aplicaciones web que se utilizan en Internet o en la intranet. Es muy importante que la aplicación web vaya con LDAP, ya que es un factor muy común e importante que facilita el desarrollo seguro de la aplicación web.
  • LDAP también se puede definir como el conjunto de estándares que se utilizan para realizar las comprobaciones de seguridad con el fin de averiguar si el usuario tiene todos los permisos para acceder al sistema existente. Hay varias formas de realizar las comprobaciones, pero finalmente, el motivo de todas las comprobaciones es garantizar la seguridad de la aplicación web. Prohíbe el acceso no autorizado de los usuarios que no tienen los privilegios adecuados. En función de los derechos que el usuario posee para la aplicación web en particular, garantiza que el usuario pueda acceder solo a aquellas cosas a las que tiene derecho. Aunque se utiliza para cuidar la seguridad de la aplicación web, los piratas informáticos también pueden engañarla para extraer el jugo de la aplicación.

Realizar inyección de LDAP con ejemplo

  • La aplicación web tiene que tomar la entrada del usuario para procesarla más. El atacante puede aprovechar esto si el valor ingresado por los usuarios no se desinfecta adecuadamente y va directamente a la base de datos para su ejecución. Aquí veremos cómo se puede iniciar la inyección de LDAP en cualquiera de las aplicaciones web que son propensas a este ataque.

IEnter your name

  • La consulta mencionada anteriormente se transformará en un comando compatible con LDAP para que la aplicación facilite que la consulta se ejecute bien.

String ldapQueryToSearch= "(sq=" + $userName + ")";
System.out.println(ldapQueryToSearch);

  • En el caso anterior, si el valor enviado por el usuario no se desinfecta, puede llevar a obtener el nombre de todos los usuarios existentes al poner "*" en el cuadro de entrada. Un asterisco denota todas las opciones disponibles, por lo que cuando la base de datos procese el asterisco en lugar de cualquier nombre de usuario en particular, se le darán todos los objetos almacenados en la base de datos LDAP. La consulta real que se ejecutará en la base de datos será

findingLogin="(&(usrid="+username+")(userPwd=(MD5)"+base64(pack("H*", md5(pass)))+"))";

  • Cuando los datos no están desinfectados y la base de datos acepta el valor de asterisco para el proceso, el código será el siguiente.

findingLogin="(&(usrid=*)(usrid=*))(|(usrid=*)(userPwd=(MD5)Xkjr1Hj5LydgyfeuILpxM==))";

Tan pronto como el código vulnerable anterior se ejecute en la base de datos LDAP, atravesará todos los objetos almacenados en la base de datos LDAP y causará daños a la aplicación web. El resultado de la inyección de LDAP será utilizado por el pirata informático para abusar del sistema y causar la violación de seguridad.

¿Cómo se puede proteger de los ataques de inyección LDAP?

  • Si hay una vulnerabilidad en la aplicación, también debe existir su solución. Apenas habrá vulnerabilidad que no pueda resolverse o repararse para proteger el sistema. Del mismo modo, hay varias formas de proteger la aplicación web de la inyección de LDAP.
  • La primera y más esencial forma es desinfectar la entrada antes de llevarla más lejos para su procesamiento. La entrada enviada por el usuario debe validarse si coincide con el requisito que se ajusta a lo que la aplicación espera a través de ese campo de texto. Por ejemplo, si el usuario intenta enviar caracteres especiales en el campo de texto que solicita el nombre, se debe alertar al usuario de que no puede completar caracteres especiales en ese campo. Esa es la validación del lado del cliente. Ahora también se requerirá la validación del lado del servidor para asegurarse de que los datos proporcionados sean genuinos.
  • El siguiente es configurar LDAP teniendo en cuenta la seguridad. La configuración de LDAP debe realizarse de manera que restrinja a los usuarios no autorizados a realizar cambios maliciosos en el sistema. Además, el siguiente es que el resultado de la consulta LDAP debe ser limitado y no puede revelar ningún dato que pueda conducir a violaciones de seguridad. Si los datos no serán suficientes para dañar el sistema, el atacante no podrá afectar la aplicación web de ninguna manera, incluso si fue capaz de lanzar el ataque de inyección LDAP.

Conclusión

El Protocolo ligero de acceso a directorios proporciona el camino a la aplicación para garantizar que el usuario que intenta acceder al sistema esté autenticado y autorizado para usar el sistema. Es muy importante considerar LDAP mientras se ocupa de todas las preocupaciones de seguridad. El sistema debe ser lo suficientemente fuerte como para no permitir que ningún hacker inicie un ataque LDAP. Como la base de datos LDAP contiene información muy lucrativa, el administrador debe asegurarse de que la información del usuario se haya desinfectado con mucho cuidado y que la configuración se debe realizar teniendo en cuenta todos los factores de seguridad.

Artículos recomendados

Esta es una guía para la inyección de LDAP. Aquí discutimos qué es la inyección de LDAP, sus ejemplos y cómo proteger el ataque de inyección de LDAP. También puede consultar nuestros otros artículos relacionados para obtener más información.

  1. ¿Qué es la inyección SQL?
  2. ¿Qué es laravel?
  3. Pruebas de seguridad
  4. ¿Qué es la interfaz Java?