Toma de control de una cuenta en una red social de fotos encadenando SQLi, reset roto, IDOR, XSS y CSRF
Red social de fotos: toma de control de la cuenta de la víctima vía SQL injection en el login, reset con token no atado al email, IDOR de cambio de contraseña, y XSS/CSRF en el chat.
Este hackeo se reportó sin recompensa
Aprende a encontrar este bug
Un hackeo real de HackerOne, reproducido para que lo practiques.
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
labs de hackeos reales
completaciones
pagados por estos bugs
Acceso a todos los labs · sin permanencia · cancela cuando quieras
Hackers que lo han resuelto· 2
Objetivos
Logro que recibirás
Cuando resuelvas este lab desbloqueas este logro compartible

Writeups de la comunidad
La checklist que repaso en cada objetivo nuevo
47 comprobaciones ordenadas por coste: primero lo que te puede meter en un lío, luego lo barato, y al final lo caro — que es donde están los bounties grandes. Te la mando al correo ahora mismo.
Te das de baja en un clic, desde cualquier correo.
Contenido del lab
Escenario
Momentia es una red social de fotos estilo Instagram. La víctima es @ana.fernandez, cuya cuenta guarda un álbum privado con un secreto: la flag. Entras con la cuenta pública del atacante mario_lopez / password123 (attacker@momentia.local). Tu objetivo es tomar el control de la cuenta de Ana y leer su álbum.
Ana es una víctima simulada (bot) que cada pocos segundos abre sus mensajes y sigue los enlaces que recibe con su propia sesión.
Guía paso a paso (varias vías llevan al ATO)
Recon. Localiza el login, el flujo de "olvidé mi contraseña", el perfil y el chat.
Vía 1 — SQL injection en el login.
POST /api/auth/loginconcatenausername/passwordsin parametrizar. Inyecta para autenticarte como Ana o extraer datos.Vía 2 — Reset de contraseña roto (BAC).
POST /api/auth/reset/confirmacepta un token no atado al email del cuerpo: pide un reset para tu cuenta y cambia el email al confirmar para apoderarte de la de Ana. La bandeja está enGET /api/mail.Vía 3 — IDOR de contraseña.
POST /api/users/:id/passwordcambia la contraseña por id sin comprobar el dueño. Pon el id de Ana y fija su contraseña.Vía 4 — XSS en el chat.
POST /api/messagesguarda HTML crudo que el cliente pinta condangerouslySetInnerHTML. Manda a Ana un mensaje con un payload; al abrirlo, exfiltra su token al collector (GET /collector/pixel).Vía 5 — CSRF POST→GET.
GET|POST /api/change-passwordidentifica por sesión, sin token CSRF y aceptando GET: manda a Ana un enlace que cambia su contraseña al abrirlo.Toma el control y captura la flag. Con la cuenta de Ana,
GET /api/me/albumte sirve el álbum privado conFLAG{…}.
Canales de feedback (no vuelas a ciegas)
- Los errores del login y la bandeja
GET /api/mailte confirman el avance. - El monitor de actividad del bot muestra cuándo Ana abre tus mensajes/enlaces (read receipt).
- El panel del collector (
GET /api/collector/log) registra lo exfiltrado.
Decoys (descártalos por razonamiento)
- El endpoint de perfil (
POST /api/users/:id/profile) sí valida el dueño — el que no lo hace es el de contraseña. - El bot solo sigue enlaces same-origin: la exfil va al collector interno del propio lab.
La falla del laboratorio
Clases: SQL injection (CWE-89), reset de contraseña roto (CWE-640), IDOR (CWE-639), XSS almacenado (CWE-79), CSRF (CWE-352), con autenticación/función sin control de acceso (CWE-306) y exposición de credenciales (CWE-522). OWASP A01/A03/A07:2021.
Todas las vías desembocan en account takeover de la víctima porque cada control confía en algo que el atacante manipula: la query no está parametrizada, el token de reset no se ata a la identidad, el cambio de contraseña no comprueba propiedad, la salida HTML no se sanea y una acción sensible se acepta por GET sin token. Defensa: consultas parametrizadas, atar los tokens a su identidad, autorización por objeto, escape de salida y CSRF tokens + métodos seguros.
Laboratorio de vídeo educativo basado en la reproducción anonimizada (empresa ficticia Momentia) de técnicas reales de account takeover.
