Saltar al contenido
Portada » Blog – Laprovittera Carlos » TryHackMe IDOR

TryHackMe IDOR

Hola hacketones! Bienvenidos a un nuevo CTF de la ruta completa de Web Fundamentals, en este capítulo veremos:  TryHackMe IDOR

IDOR

Aprenda cómo encontrar y explotar vulnerabilidades de IDOR en una aplicación web que le brindan acceso a datos a los que no debería tener acceso.  En esta sala aprenderás qué es una vulnerabilidad IDOR , cómo se ven, cómo encontrarlas y una tarea práctica explotando un escenario de caso real.

¿Qué es un IDOR ?

IDOR significa Referencia directa de objeto inseguro y es un tipo de vulnerabilidad de control de acceso.

Este tipo de vulnerabilidad puede ocurrir cuando un servidor web recibe información proporcionada por el usuario para recuperar objetos (archivos, datos, documentos), se ha depositado demasiada confianza en los datos de entrada y no se validan en el lado del servidor para confirmar que el objeto solicitado pertenece al usuario que lo solicita.

Responda las preguntas a continuación

¿Qué significa IDOR?

Insecure Direct Object Reference

Un ejemplo de IDOR

Imagina que te acabas de registrar en un servicio en línea y quieres cambiar la información de tu perfil. El enlace en el que haces clic lleva a http ://online-service.thm/profile ? user_id =1305, y puedes ver tu información.

La curiosidad te vence e intentas cambiar el valor de user_id a 1000 ( http ://online-service.thm/profile ? user_id =1000), y para tu sorpresa, ahora puedes ver la información de otro usuario. ¡Has descubierto una vulnerabilidad de IDOR ! Idealmente, debería haber una comprobación en el sitio web para confirmar que la información del usuario pertenece al usuario que la solicitó.

Usando lo que has aprendido anteriormente, haz clic en el botón Ver sitio e intenta recibir una alerta descubriendo y explotando una vulnerabilidad de IDOR .

Responda las preguntas a continuación

¿Qué es la bandera del sitio web de ejemplo IDOR?

Encontrar IDOR en ID codificados

Identificaciones codificadas

Al pasar datos de una página a otra, ya sea mediante datos de publicación, cadenas de consulta o cookies, los desarrolladores web suelen codificar primero los datos sin procesar. La codificación garantiza que el servidor web receptor pueda comprender el contenido. La codificación convierte los datos binarios en una cadena ASCII, que suele utilizar el a-z, A-Z, 0-9 and = carácter de relleno. La técnica de codificación más común en la web es la codificación base64 y suele ser bastante fácil de identificar. Puede utilizar sitios web como  https://www.base64decode.org/ para decodificar la cadena, editar los datos y volver a codificarlos utilizando  https://www.base64encode.org/ y, a continuación, volver a enviar la solicitud web para comprobar si hay algún cambio en la respuesta.

Vea la imagen a continuación como ejemplo gráfico de este proceso:

Responda las preguntas a continuación

¿Cuál es un tipo común de codificación utilizado por los sitios web?

Base64

Encontrar IDOR en IDs hash

IDs en hash

Los identificadores hash son un poco más complejos de manejar que los codificados, pero pueden seguir un patrón predecible, como ser la versión hash del valor entero. Por ejemplo, el identificador 123 se convertiría en 202cb962ac59075b964b07152d234b70 si se usara el hash MD5 .

Vale la pena pasar cualquier hashes descubierto a través de un servicio web como  https://crackstation.net/ (que tiene una base de datos de miles de millones de resultados de hashes a valores) para ver si podemos encontrar alguna coincidencia.

Responda las preguntas a continuación

¿Cuál es un algoritmo común utilizado para hacer hashes de identificaciones?

Md5

Encontrar IDOR en ID impredecibles

Identificaciones impredecibles

Si no se puede detectar el ID con los métodos anteriores, un excelente método para detectar IDOR es crear dos cuentas e intercambiar sus números de ID. Si puede ver el contenido de otros usuarios usando su número de ID mientras está conectado con otra cuenta (o sin haber iniciado sesión), ha detectado una vulnerabilidad de IDOR válida.

Responda las preguntas a continuación

¿Cuál es el número mínimo de cuentas que debe crear para verificar IDOR entre cuentas?

2

¿Dónde se encuentran ubicados los IDOR?

¿Donde están ubicados?

El punto final vulnerable al que te diriges puede no ser siempre algo que veas en la barra de direcciones. Podría ser contenido que tu navegador carga mediante una solicitud AJAX o algo referenciado en un archivo JavaScript. 

A veces, los endpoints pueden tener un parámetro sin referencia que pudo haber sido útil durante el desarrollo y que se envió a producción. Por ejemplo, podrías observar una llamada a  /user/details  que muestra tu información de usuario (autenticada mediante tu sesión). Sin embargo, mediante un ataque conocido como minería de parámetros, descubres un parámetro llamado user_id que puedes usar para mostrar la información de otros usuarios, por ejemplo, /user/details?user_id=123 .

Un ejemplo práctico de IDOR

Comience presionando el  botón Iniciar máquina  ; una vez iniciado, haga clic en el siguiente enlace y ábralo en una nueva pestaña del navegador:

https://LAB_WEB_URL.p.thmlabs.com

Primero, deberá iniciar sesión. Para ello, haga clic en la sección de clientes y cree una cuenta. Una vez iniciada la sesión, haga clic en la  pestaña «Su cuenta»  . 

La  sección «Tu cuenta»  te permite cambiar tu información, como tu nombre de usuario, correo electrónico y contraseña. Verás que los campos de nombre de usuario y correo electrónico ya están rellenados con tu información.  

Comenzaremos investigando cómo se precompleta esta información. Si abres las herramientas para desarrolladores de tu navegador, seleccionas la pestaña de red y actualizas la página, verás una llamada a un punto final con la ruta / api /v1/customer?id= {user_id}.

Esta página devuelve en formato JSON su ID de usuario, nombre de usuario y dirección de correo electrónico. La ruta muestra que la información de usuario se obtiene del parámetro id de la cadena de consulta (ver imagen a continuación).

Puedes probar este parámetro de id para detectar una vulnerabilidad de IDOR cambiándolo por el de otro usuario. Intenta seleccionar usuarios con los ID 1 y 3 y responde las preguntas a continuación.

Responda las preguntas a continuación

¿Cuál es el nombre de usuario para el usuario ID 1?

adam84

¿Cuál es la dirección de correo electrónico del usuario ID 3?

j@fakemail.thm

Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!

Deja una respuesta

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