IDOR

Introducción al Insecure Direct Object Reference (IDOR)

El Insecure Direct Object Reference (IDOR) es una vulnerabilidad que permite a un atacante acceder o manipular recursos de otros usuarios sin la autorización adecuada. Ocurre cuando el sistema expone identificadores predecibles (como IDs de objetos), y no valida si el usuario actual tiene permiso para acceder al recurso solicitado.

El parámetro clave en esta petición es id_factura=48, que hace referencia a una factura específica en el sistema. Dado que los identificadores de facturas parecen ser números consecutivos, un atacante podría intentar manipular este ID para ver facturas de otros usuarios, lo cual sería una vulnerabilidad de tipo IDOR si no existen controles de acceso adecuados.

Observación al Probar el IDOR

Al intentar manipular el ID de la factura cambiando el valor a id_factura=35 y id_factura=34, se observó que el sistema devolvió únicamente los productos comprados en esas facturas, sin mostrar información sensible como el nombre del comprador, su correo electrónico u otros datos personales.

Esto indica que, aunque hay cierta exposición a IDOR, el impacto parece limitado a la visualización de los productos adquiridos en la factura. Sin embargo, sigue siendo un riesgo ya que un atacante podría:

  • Acceder a productos adquiridos por otros usuarios, lo que podría revelar detalles sobre los artículos que han comprado.

  • Enumerar facturas cambiando el valor del ID, lo que puede llevar a un ataque de fuerza bruta para descubrir información adicional.

Aunque los datos personales no se exponen, la capacidad de ver el historial de compras de otros usuarios sigue siendo una violación de la privacidad.

Riesgos Asociados al IDOR en este Caso

  1. Acceso no autorizado a productos comprados por otros usuarios: El hecho de que un atacante pueda visualizar los productos comprados por otros usuarios sigue siendo un riesgo de privacidad. Un atacante podría intentar obtener información sobre patrones de compra u obtener detalles sobre los productos que otros usuarios han adquirido.

  2. Enumeración de facturas: Dado que los IDs parecen ser autoincrementales, un atacante podría intentar enumerar los IDs de las facturas y acceder a los detalles de productos adquiridos por otros usuarios, aunque no tenga acceso a datos personales.

  3. Posibilidad de exposición futura: Aunque en este caso no se muestran datos personales, es posible que en futuras solicitudes o respuestas diferentes, se puedan exponer más detalles si no se refuerzan los controles de acceso.

Mitigación y Buenas Prácticas

Para mitigar los riesgos de IDOR en este caso, se recomiendan las siguientes medidas:

  1. Validación de acceso basada en el usuario: Antes de mostrar los productos de una factura, el sistema debería verificar si el usuario autenticado tiene permiso para ver esa factura en particular. Esto asegura que solo el propietario de la factura pueda acceder a los productos comprados en ella.

  2. Uso de identificadores impredecibles: En lugar de usar IDs consecutivos que pueden ser adivinados fácilmente, se recomienda utilizar identificadores aleatorios o UUIDs. Esto dificulta los intentos de enumerar facturas o productos de otros usuarios.

  3. Auditoría y monitoreo de solicitudes sospechosas: El sistema debería registrar y monitorear intentos de manipulación de ID para detectar y responder ante posibles ataques. Si un usuario intenta acceder repetidamente a facturas que no le pertenecen, debería activarse un mecanismo de alerta o bloqueo.

Last updated