Entrada

TryHackMe - IDOR

馃攽 Aprende a encontrar y explotar vulnerabilidades IDOR en una aplicaci贸n web

TryHackMe - IDOR

Aprende a encontrar y explotar vulnerabilidades IDOR en una aplicaci贸n web, permiti茅ndote acceder a datos a los que no deber铆as tener acceso. Tryhackme Room Link

驴Qu茅 es un IDOR?

IDOR significa Referencia Directa a Objeto Insegura y es un tipo de Vulnerabilidad de Control de Acceso.

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

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 en lugar de (http://online-service.thm/profile?user_id=1000). Para tu sorpresa, ahora puedes ver la informaci贸n de otro usuario. 隆Has descubierto una vulnerabilidad de IDOR!

Idealmente, deber铆a haber una verificaci贸n en el sitio web para confirmar que la informaci贸n del usuario pertenece al usuario que la solicit贸.

Con lo aprendido anteriormente, haz clic en el bot贸n Ver sitio e intenta obtener una marca descubriendo y explotando una vulnerabilidad de IDOR.

Podemos ver los cuatro correos electr贸nicos.

Averig眉emos para cu谩l podemos usar esta vulnerabilidad:

IDOR Example

Intenta cambiar el n煤mero de orden a 1000:

IDOR Example 2

Y recibimos la bandera:

IDOR Example 3

Question:

驴Cu谩l es la bandera del sitio web de ejemplo de IDOR?

Respuesta:
1
THM{IDOR-VULN-FOUND}

Encontrar IDORs en IDs Codificados

IDs Codificados

Al transferir 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 los caracteres a-z, A-Z, 0-9 y = como 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. Puedes usar sitios web como base64encode para decodificar la cadena, editar los datos y volver a codificarlos utilizando base64encode y, a continuaci贸n, volver a enviar la solicitud web para comprobar si hay alg煤n cambio en la respuesta.

Respuesta:
1
base64

Encontrar IDORs en IDs Hasheados

IDs Hasheados

Los IDs hasheados son un poco m谩s complicados de manejar que los codificados, pero pueden seguir un patr贸n predecible, como ser la versi贸n hasheada del valor entero. Por ejemplo, el n煤mero de ID 123 se convertir铆a en 202cb962ac59075b964b07152d234b70 si se utilizara el algoritmo de hash md5.

Vale la pena poner cualquier hash descubierto a trav茅s de un servicio web como crackstation (que tiene una base de datos de miles de millones de resultados de hash a valor) para ver si podemos encontrar alguna coincidencia.

Respuesta:
1
base64

Encontrar IDORs en IDs Impredecibles

IDs Impredecibles

Si no se puede detectar el ID utilizando los m茅todos anteriores, un excelente m茅todo para detectar IDOR es crear dos cuentas y cambiar los n煤meros de ID entre ellas. Si puedes ver el contenido de otro usuario utilizando su n煤mero de ID mientras sigues conectado con una cuenta diferente (o sin estar conectado en absoluto), has encontrado una vulnerabilidad IDOR v谩lida.

Respuesta:
1
2

驴D贸nde est谩n ubicados?

El endpoint 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, puedes observar una llamada a /user/details que muestra tu informaci贸n de usuario (autenticada a trav茅s de tu sesi贸n). Pero 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.

Respuesta:
1
No se necesita respuesta

Un Ejemplo Pr谩ctico de IDOR

Comience presionando el bot贸n Iniciar m谩quina; una vez iniciado, visite el sitio web en una nueva pesta帽a del navegador:

https://WEBSITE_IP.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 Su cuenta le permite cambiar su informaci贸n, como nombre de usuario, correo electr贸nico y contrase帽a. Ver谩 que los campos de nombre de usuario y correo electr贸nico est谩n prellenados con su informaci贸n.

Pr谩ctica 1

Comenzaremos investigando c贸mo se prellena esta informaci贸n. Si abres las herramientas para desarrolladores del navegador, seleccionas la pesta帽a de red y luego actualizas la p谩gina, ver谩s una llamada a un endpoint con la ruta /api/v1/customer?id={user_id}.

Esta p谩gina devuelve en formato JSON tu ID de usuario, nombre de usuario y direcci贸n de correo electr贸nico. La ruta muestra que la informaci贸n de usuario mostrada se obtiene del par谩metro id de la cadena de consulta.

Intentemos actualizar nuestro nombre de usuario a otro y hagamos clic en actualizar:

Practice 2

Podemos hacer clic derecho y seleccionar Edit and Resend.

Practice 3

Cambia el ID a 1 y haz clic en Send.

Practice 4

Podemos ver que el ID ahora ha cambiado y podemos ver la informaci贸n del usuario.

Practice 5

Respuesta:
1
adam84

Ahora hacemos lo mismo para el ID 3:

Practice 6

Respuesta:

Esta entrada est谩 licenciada bajo CC BY 4.0 por el autor.