Vulnerabilidad de referencia de objeto directo inseguro (IDOR)

Una de las vulnerabilidades más cruciales enumeradas en el top 10 de OWASP es la vulnerabilidad de referencia de objeto directo inseguro (vulnerabilidad IDOR). En este artículo discutiremos la vulnerabilidad IDOR. Antes de continuar, analicemos primero la autenticación. Autenticación significa verificar la identidad de una persona y permitir que esa persona acceda a requests específicas si el usuario está autenticado (verificado). Pero si un usuario no está autenticado y puede ver archivos, es decir, abrir archivos de manera incorrecta como lo hacen los piratas informáticos/atacantes, se denomina autenticación rota . Este artículo se centrará en la forma en que un atacante utiliza las vulnerabilidades de autenticación rota que pueden conducir a IDOR. 

¿Qué es una Vulnerabilidad IDOR?  
En una aplicación web, cada vez que un usuario genera, envía o recibe una solicitud de un servidor, hay algunos parámetros HTTP como «id», «uid», «pid», etc. que tienen algunos valores únicos que se le han asignado al usuario. Un atacante puede ver dichos valores de parámetros en cookies, encabezados o capturas de paquetes wifi. A través de esto, un atacante podría manipular estos valores y esta manipulación puede conducir a IDOR. 

Algunos de los ejemplos que demuestran los datos no confiables que se pueden manipular usando IDOR:  

  • www.xyz.com/myaccount/uid=12
  • www.xyz.com/myaccount/uid=14
  • www.xyz.com/myaccount/uid=15
  • www.xyz.com/myaccount/uid=19

Aquí podemos ver que el uid en la URL parece ser vulnerable y un atacante puede manipularlo para romper la autenticación. 

¿Cómo se ejecutan las vulnerabilidades de IDOR? 
Analicemos primero el funcionamiento de back-end de una aplicación web que utiliza el medio no autenticado en SQL, lo que conduce al acceso a la información de la cuenta del usuario.  

String query = "SELECT * FROM accts WHERE account = ?";
PreparedStatement pstmt = connection.prepareStatement(query, ... );
pstmt.setString(1, request.getParameter("acct"));
ResultSet results = pstmt.executeQuery( );

En el código anterior, el atacante modificará el parámetro «cuentas» en la aplicación web y puede ingresar varios números de cuenta para recuperar la información. 

Pasos involucrados en la ejecución del ataque IDOR: los  atacantes utilizan ampliamente
la herramienta Burp Suite para ejecutar este tipo de ataques. Los siguientes son los pasos que se están siguiendo:  

  • Capture la Solicitud: En primer lugar, un atacante decidirá un sitio web de destino al que desea ejecutar un ataque IDOR. Luego, el sitio web se agrega al alcance y rastrea el sitio web para obtener todas las URL con parámetros específicos.
  • Filtrar la solicitud de parámetros: después del primer paso, filtraremos nuestra solicitud capturada con los filtros de parámetros. Un atacante solo elegirá ese parámetro o puntos de inyección donde puede ejecutar los ataques.
  • Reenviar solicitud al repetidor: ahora, si un atacante encuentra algún punto de inyección donde puede ejecutar IDOR, reenviará la solicitud al repetidor. La URL vulnerable podría verse así: www.xyz.com/myaccount/uid=19 . Aquí el “UID” parece ser vulnerable.
  • Manipulación de parámetros: ahora que el atacante tiene el punto de inyección vulnerable, ahora intentará ejecutar el ataque IDOR con la ayuda de la ingeniería social o el patrón como está escrito en el punto de inyección. Ejemplo: un atacante puede cambiar el uid de 19 a 20, lo que abrirá la cuenta de otro usuario al que se le ha asignado el número de identificación 20.

Impactos de la vulnerabilidad IDOR:  

  • Exposición de información confidencial: cuando el atacante tenga control sobre su cuenta a través de esta vulnerabilidad, es obvio que un atacante podrá encontrar su información personal.
  • Omisión de autenticación: como el atacante puede tener acceso a millones de cuentas con esta vulnerabilidad, será un tipo de mecanismo de omisión de autenticación.
  • Alteración de datos: un atacante puede tener privilegios para acceder a sus datos y modificarlos. Por esto, un atacante puede tener permiso para realizar cambios en sus datos, lo que puede conducir a la manipulación de registros.
  • Toma de control de la cuenta: si bien un atacante puede tener acceso múltiple a las cuentas de usuario simplemente cambiando los valores de «UID», esto conducirá a una vulnerabilidad de toma de control de la cuenta. Cuando una vulnerabilidad conduce a otra vulnerabilidad (como en este caso), se conoce como Enstringmiento de BUGS.

Remediación de la vulnerabilidad IDOR:  

  • Los desarrolladores deben evitar mostrar referencias a objetos privados, como claves o nombres de archivos.
  • La validación de parámetros debe implementarse correctamente.
  • Se debe realizar la verificación de todos los objetos referenciados.
  • Los tokens deben generarse de tal manera que solo deben asignarse al usuario y no deben ser públicos.

Publicación traducida automáticamente

Artículo escrito por deepamanknp y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *