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.
This hack was reported with no reward
Learn to find this bug
A real HackerOne hack, reproduced for you to practice.
Create your account and practice real bugs that got paid. Download the environment, find it and learn the exact technique — your path to your first bounty.
hunters training
labs from real hacks
completions
paid out for these bugs
Access to all labs · no commitment · cancel anytime
Hackers who solved it· 2
Objectives
Achievement you'll earn
Solve this lab to unlock this shareable achievement

Community writeups
The checklist I run on every new target
47 checks ordered by cost: first what can get you in trouble, then the cheap stuff, and finally the expensive stuff — which is where the big bounties are. I'll send it to your inbox right now.
Unsubscribe in one click, from any email.
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.
