IDOR via Predictable Checkout IDs
E-commerce de lujo donde los IDs de checkout son numericos de 4 digitos y no requieren autenticacion para acceder, permitiendo bruteforcear los 10.000 posibles IDs y encontrar datos sensibles.
Aprende a encontrar este bug
Este bug pagó $500 en HackerOne.
Crea tu cuenta y practica bugs reales que se pagaron. Descarga el entorno, encuéntralo y aprende la técnica exacta — tu camino a tu primer bounty.
- hunters entrenando
- 650
- labs de reportes reales
- 50
- completaciones
- 380
- en bounties practicados
- $200.000
hunters entrenando
labs de reportes reales
completaciones
en bounties practicados
Acceso a todos los labs · sin permanencia · cancela cuando quieras
Hunters que lo han resuelto· 8
Objetivos
Logro que recibirás
Cuando resuelvas este lab desbloqueas este logro compartible
IDOR via Predictable Checkout IDs
Writeups de la comunidad
Despliegue
# Opcion 1: autodeploy
./autodeploy.sh
# Opcion 2: manual
docker compose up --build
# Acceder
http://localhost:1800
Compatible con macOS, Linux y Windows (Docker Desktop / WSL).
Para parar:
./autodeploy.sh destroy
# o: docker compose down -v
Contenido del Lab
La aplicacion
LuxeCart es un e-commerce de productos de lujo con sistema de checkout que genera URLs con IDs numericos de 4 digitos.
La vulnerabilidad
Los checkouts usan IDs numericos secuenciales de 4 digitos (0000-9999). El endpoint GET /api/checkout/:id devuelve datos completos del comprador (nombre, email, telefono, PII) sin requerir autenticacion ni verificar la propiedad.
Cadena de ataque
1. Hacer una compra → obtener URL de checkout
2. Notar el ID de 4 digitos
3. Script para bruteforcear 0000-9999
4. Encontrar checkouts validos con PII
5. ID 7456 → checkout del admin con flag
Solucion interactiva
Accede a /writeup dentro de la aplicacion para una guia paso a paso con botones interactivos.
Remediacion
- Usar UUIDs en vez de IDs secuenciales
- Requerir autenticacion para acceder a checkouts
- Verificar propiedad del recurso
- Rate limiting en endpoints sensibles