Aprende a identificar y explotar vulnerabilidades IDOR (Insecure Direct Object Reference) en aplicaciones web. Desde los conceptos básicos hasta la escritura de reportes efectivos.
BBLabs
Security Researcher
IDOR (Insecure Direct Object Reference) es una de las vulnerabilidades más comunes y más recompensadas en programas de bug bounty. Ocurre cuando una aplicación expone una referencia directa a un objeto interno — como un ID de usuario, un nombre de archivo o una clave de base de datos — sin verificar que el usuario tenga autorización para acceder a ese recurso.
En términos simples: si puedes cambiar un número en una URL o en una petición y acceder a datos de otro usuario, probablemente estés frente a un IDOR.
Es el tipo más frecuente. Un usuario accede a recursos de otro usuario del mismo nivel de privilegios. Por ejemplo:
GET /api/users/1234/profile → Tu perfil
GET /api/users/1235/profile → Perfil de otro usuario (¡sin autorización!)
Ocurre cuando un usuario con privilegios bajos accede a funciones de un usuario con privilegios altos (por ejemplo, un usuario normal accede a un panel de administrador):
GET /api/admin/users → Solo debería ser accesible para admins
GET /api/admin/settings → Configuraciones del sistema
No siempre se trata de acceder a datos. A veces puedes ejecutar acciones sobre recursos ajenos:
DELETE /api/posts/5678 → Borrar el post de otro usuario
PUT /api/users/1235/email → Cambiar el email de otro usuario
Usa Burp Suite para interceptar todas las peticiones mientras navegas la aplicación. Presta especial atención a cualquier parámetro que contenga IDs, UUIDs, nombres de archivo o referencias a objetos.
Busca patrones como:
/api/v1/users/{user_id}/orders
/api/v1/documents/{doc_id}/download
/api/v1/invoices?id=12345
/profile?account=usuario123
Esta es la técnica más efectiva. Crea dos cuentas de prueba (Account A y Account B):
Si los IDs son numéricos y secuenciales, prueba con Burp Intruder:
GET /api/users/§1§/profile HTTP/1.1
Authorization: Bearer tu_token_aqui
Payload: Numbers, From 1 To 1000, Step 1
A veces el mismo endpoint acepta diferentes formatos:
/api/users/123 → ID numérico
/api/users/user_123 → ID con prefijo
/api/users/abc-def-ghi → UUID
/api/users/admin@test.com → Email como identificador
/api/users/{id}, /profile/{id}/api/files/{file_id}/download, /documents/{name}.pdf/api/export?report_id=123/api/messages/{id}, /api/notifications/{id}/api/transactions/{id}Si la primera prueba no funciona, intenta estas variaciones:
# Cambiar el método HTTP
GET → POST, PUT, PATCH
# Agregar/quitar parámetros
/api/users/123 → /api/users/123?admin=true
# Cambiar el formato del ID
123 → 0123 → 00123
# Encodear el ID
123 → MTIz (Base64)
# Probar con el ID en diferentes ubicaciones
Body, URL, Headers, Cookies
Los IDORs son vulnerabilidades "simples" en concepto pero extremadamente impactantes. Son una excelente puerta de entrada al mundo del bug bounty porque no requieren conocimientos técnicos muy avanzados, pero sí requieren paciencia, metodología y atención al detalle. Practica con las plataformas de labs y pronto estarás reportando tus primeros bugs reales.
Explora las técnicas más comunes para atacar implementaciones inseguras de JSON Web Tokens: desde el algoritmo none hasta inyección de JKU/JWK.
Aprende a escalar vulnerabilidades SSRF desde una severidad baja hasta un impacto crítico. Técnicas de explotación, bypass de filtros y cadenas de ataque en entornos cloud.