Advertisement

header ads

Explotando IDOR - Bug Bounty

Vengo a explicar unos de mis métodos más divertidos para ustedes, donde necesitamos tener un poco de conocimiento de Javascript.



¿Qué es un IDOR?

Un IDOR, o Insecure Direct Object Reference, es una vulnerabilidad que otorga a un atacante acceso no autorizado para recuperar objetos como archivos, datos o documentos. Además, esta vulnerabilidad figura en el top 10 de OWASP de 2021  broken access control. 

La vulnerabilidad de IDOR a menudo ocurre bajo la falsa suposición de que los objetos nunca se recuperarán directamente usando su identificador único, sino simplemente a través de la lógica de la aplicación. Por lo general, una aplicación le mostrará solo los objetos que está autorizado a ver y, a menudo, le proporcionará los identificadores necesarios para recuperarlos. Sin embargo, tras la recuperación de dicho objeto, a menudo falta comprobar si el usuario solicitante tiene realmente permiso para acceder al objeto.

¿Qué tipo de IDOR existe?

Esto son los tipos de IDOR que existe:

  • Falta de comprobaciones de autorización adecuadas: Esta es la causa más común de los IDOR. Si una aplicación no verifica correctamente si un usuario está autorizado para acceder a un objeto determinado, entonces un atacante puede eludir estos controles y acceder a los datos.
  • Entropía insuficiente: si una aplicación utiliza referencias directas a objetos predecibles o fáciles de adivinar, entonces un atacante puede adivinar o utilizar la fuerza bruta para llegar a los datos.
  • Permisos incorrectos: si una aplicación establece permisos incorrectos en referencias directas a objetos, es posible que los usuarios no autorizados puedan acceder a los datos.

¿Cómo proceder a explotar?

En mi experiencia este tipo vulnerabilidad se puede llegar leyendo los javascript donde logras entender sobre algún parámetro interesante, otro también sería que las funciones, por ejemplo, está a la vista o usar la logica.
Ejemplo:
example.com/user/1      Juan
example.com/user/2      Jose

Una pequeña experiencia ha sido encontrar por medio esta vulnerabilidad, correos, información sensible, credenciales (pocas veces), token, etc.

¿Cuál ha sido mi experiencia más complicada?

Programar una automatización en base64 o algún cifrado para llegar a explotar información.
Ejemplo:
example.com/user/c4ca4238a0b923820dcc509a6f75849b
Otro ejemplo:
Que la información solo se refleje en el frontend. 

¿Cómo explotarlo en la vida real?

Antes de empezar existe herramientas para practicar esta explotación como DVWA, bwapp. En este caso encontré una plataforma donde en menos de 25min pudeexplotar sin llamar mucho la atención con las peticiones.

Ahora esta plataforma, no tengo mucha información de lo que está pidiendo, tengo que pensar como un atacante a buscar información que tipo de documentos puedo encontrar este proceso va a hacer un OSINT.
Ahora les mostrare otro ejemplo que puedes encontrar un IDOR, quiero aclarar que, aunque no existe información sensible, le puede dar una idea de esta vulnerabilidad.
IDOR detectado


IDOR detectado
Este parámetro nos muestra que con solo cambiando el numero podemos obtener diferente información, ahora te doy una idea que por medio de algún otro parámetro encontrado o ruta puedes llegar obtener información más sensible.

¿Cómo encontrar estos parámetros o esta vulnerabilidad?

En mi experiencia se puede encontrar leyendo código o verificando los JavaScript.
En creadpag puedes encontrar un artículo sobre buscar: Buscar parámetros en un archivo de JavaScript - Bug Bounty (creadpag.com)

Otro ejemplo puede usar burpsuite y comenzar a hacer una búsqueda de sus scripts.





Así se logró encontrar una ruta interesante y parámetros para realizar nuestra búsqueda automatizada, en este ejemplo lo hare por medio del navegador.
INFORMACIÓN POR MEDIO DEL BACKEND

INFORMACIÓN POR MEDIO EL FRONTED



En este caso se logró realizar por medio de GET pero también funciona por medio de POST, se realizó automatizarlo por medio del backend nos arroje esta información.



Por medio de esta automatización y gracias a un parámetro que se encontró en la búsqueda de los JavaScript, también nos da información sensible de los clientes.

¿Cuál es el riesgo?

Esta vulnerabilidad es crítica ya que, por medio de parámetros vulnerables se puede obtener más información para explotar la plataforma.
Dicha vulnerabilidad se puede convertir en una inyección SQL, donde se puede llegar a más información sensible. 

No te olvides en compartir y para seguir publicando más.

Publicar un comentario

0 Comentarios