Exploit IDOR
Objetivo
Determinar si los identificadores de objetos pueden manipularse para acceder a datos o acciones de otro usuario.
Supuestos
- la app expone rutas, IDs o referencias específicas de objetos
- authorization puede ser más débil que authentication
- el servidor puede confiar demasiado en identificadores enviados por el cliente
Prerrequisitos
- cuentas de prueba autenticadas con scopes de privilegio distintos
- capacidad de capturar y hacer replay de requests
- comprensión de dónde viven los objetos dentro de la app
Pasos de recon
- Mapeá endpoints que exponen object IDs en paths, query params, forms o JSON.
- Compará requests de dos usuarios distintos.
- Buscá IDs predecibles, reutilización de UUIDs, registros secuenciales o referencias filtradas.
Pasos de exploit / testing
- Capturá una request que accede a un objeto.
- Cambiá solo el identificador del objeto.
- Reproducí la request con el mismo contexto auth.
- Probá operaciones de lectura y escritura.
- Repetí en endpoints ocultos, exports, downloads y rutas mobile/API.
Señales de validación
- se devuelve el objeto de otro usuario
- escrituras contra el recurso de otro usuario tienen éxito
- la metadata de response cambia sin error de autorización
- cambios de timing o status indican existencia del objeto
Mitigación
- aplicar autorización server-side en cada acceso a objeto
- usar referencias indirectas solo como ayuda, no como reemplazo
- no depender de visibilidad de UI como protección
- loguear fallas de autorización y patrones sospechosos de acceso a objetos
Logging / detección
- intentos repetidos de acceso sobre IDs adyacentes
- muchas combinaciones 403/404 en la misma familia de rutas
- contexto auth accediendo objetos fuera del scope de ownership esperado
Notas relacionadas
Referencias
- Testing / Lab: PortSwigger IDOR page — https://portswigger.net/web-security/access-control/idor
- Testing / Lab: PortSwigger access control topic — https://portswigger.net/web-security/access-control
- Fundamental: OWASP WSTG authorization testing — https://owasp.org/www-project-web-security-testing-guide/latest/