Nuevos labs cada semana — Accede a todos desde 7,99€/mes
Ver labs →Labs de IDOR
Insecure Direct Object Reference (IDOR)
¿Qué es IDOR?
El IDOR ocurre cuando una aplicación expone referencias directas a objetos internos (IDs, archivos, slugs) sin verificar que el usuario tiene permiso para acceder a ellos. Es la vulnerabilidad más reportada en programas de bug bounty.
¿Por qué practicar IDOR?
El IDOR es consistentemente el tipo de vulnerabilidad más reportado en bug bounty. Es relativamente fácil de encontrar si sabes dónde buscar, y los bounties pueden ser altos porque el impacto suele ser acceso a datos de otros usuarios, exposición de PII y, en muchos casos, account takeover.
¿Qué aprenderás con los labs de IDOR?
Aprenderás a enumerar endpoints con IDs incrementales y UUID v1 predecibles, a fuzzear cabeceras como X-Account-Id, a detectar IDOR en GraphQL via field arguments, y a documentar PoC con dos cuentas reproducibles para maximizar el triage.
Tipos de IDOR que cubrimos
- Numeric ID enumeration
El recurso usa enteros incrementales (/api/orders/123). Cambias el número y accedes a recursos ajenos.
- UUID predecible
UUID v1 (timestamp + MAC) o secuenciales. Aunque parecen aleatorios, son enumerables.
- IDOR en GraphQL
Las queries reciben IDs como argumentos. Sin authorization checks por field, accedes a objetos ajenos.
- Mass assignment
PUT /users/me con body extra `{role:"admin"}`. El backend acepta el field y eleva permisos.
¿Cómo encontrar y explotar IDOR?
Playbook práctico — del recon a la prueba de concepto.
- 1
Mapear objetos con identificador
Crea una cuenta, navega y anota cada endpoint que recibe un id, uuid, filename o slug propio. Esos son los candidatos.
GET /api/orders/1337 · GET /invoices/INV-1337.pdf · GET /users/42/settings - 2
Enumerar IDs ajenos
Decrementa/incrementa el identificador con tu sesión. Si devuelve datos de otro usuario, es IDOR. Automatiza con Burp Intruder.
GET /api/orders/1336 → datos de otro cliente = IDOR - 3
Atacar identificadores 'opacos'
Los UUID v1 llevan timestamp+MAC y son predecibles; los IDs en base64 suelen decodificar a enteros. No asumas que son seguros.
echo 'dXNlcjoxMzM3' | base64 -d → user:1337 - 4
Fuzzear cabeceras y parámetros de tenant
Muchas apps confían en X-Account-Id, X-User-Id o ?org= sin revalidar. Cámbialos por el de la víctima.
X-Account-Id: 1338 (manteniendo tu cookie de sesión) - 5
Probar mass assignment
Añade campos privilegiados al body de un update propio. Si el backend los acepta, escalas de IDOR a takeover.
PUT /api/users/me {"email":"yo@x.com","role":"admin"} - 6
Documentar con dos cuentas
Para un triage limpio, demuestra con la cuenta A accediendo a un recurso creado por la cuenta B. Reproducible en 30s.
Cuenta A (id 100) lee GET /api/orders de cuenta B (id 200)
Aprende la teoría
Academy: IDOR & Broken Access Control
Cargando labs...
Ver en catálogo completo →Preguntas frecuentes
¿Qué es un IDOR?
Insecure Direct Object Reference es un fallo de control de acceso en el que la app expone un identificador de objeto (id, uuid, fichero) y sirve el recurso sin comprobar que el usuario actual tiene permiso sobre él.
¿Cómo se explota un IDOR?
Capturas una petición que referencia un objeto tuyo y cambias el identificador por el de otro usuario manteniendo tu sesión. Si el servidor devuelve el recurso ajeno, has accedido a datos que no te corresponden.
¿Cómo encontrar IDOR en bug bounty?
Trabaja con dos cuentas. Lista todos los endpoints que usan IDs y, desde la cuenta A, intenta acceder a objetos de la cuenta B. Enumera IDs numéricos con Burp Intruder y revisa también identificadores en base64, UUID v1 y cabeceras de tenant.
¿Cómo prevenir el IDOR?
Aplica controles de autorización a nivel de objeto en cada petición (no solo de autenticación), valida que el recurso pertenece al usuario en sesión, y usa referencias indirectas o identificadores impredecibles junto a checks server-side.
¿Diferencia entre IDOR y Broken Access Control?
El IDOR es un caso concreto de Broken Access Control: el acceso horizontal a objetos de otros usuarios. Broken Access Control es el paraguas que también incluye escalada vertical de privilegios, forced browsing y bypass de checks de función.
Otras categorías relacionadas
Empieza con labs de IDOR
Practica Insecure Direct Object Reference (IDOR) con labs basados en reportes reales. En español. Desde 7,99€/mes.
Empieza con el primer lab de IDOR