Stored XSS to Admin Password Change
Plataforma de equipo con chat donde los mensajes se renderizan con dangerouslySetInnerHTML (Stored XSS) y el cambio de contrasena no requiere la contrasena actual.
Learn to find this bug
A real bug bounty report, 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
- 650
- labs from real reports
- 50
- completions
- 380
- in bounties practiced
- $200,000
hunters training
labs from real reports
completions
in bounties practiced
Access to all labs · no commitment · cancel anytime
Hunters who solved it· 8
Objectives
Achievement you'll earn
Solve this lab to unlock this shareable achievement
Stored XSS to Admin Password Change
Community writeups
Credenciales
| Usuario | Contrasena | Rol |
|---|---|---|
| john_doe | john123 | user |
Despliegue
# Opcion 1: autodeploy
./autodeploy.sh
# Opcion 2: manual
docker compose up --build
# Acceder
http://localhost:2000
Compatible con macOS, Linux y Windows (Docker Desktop / WSL).
Para parar:
./autodeploy.sh destroy
# o: docker compose down -v
Contenido del Lab
La aplicacion
TeamFlow es una plataforma de equipo con mensajeria y gestion de perfil.
La vulnerabilidad
Los mensajes del chat se renderizan con dangerouslySetInnerHTML sin sanitizar (Stored XSS). El endpoint PUT /api/auth/profile cambia la contrasena sin verificar la actual. Combinando ambos: XSS ejecuta un cambio de contrasena del admin.
Cadena de ataque
1. Enviar mensaje con <script> o <img onerror>
2. Verificar ejecucion de JS (Stored XSS)
3. Crear payload: fetch PUT /api/auth/profile con nueva contrasena
4. Admin lee el chat → contrasena cambiada
5. Login como admin → Panel completo
Solucion interactiva
Accede a /writeup dentro de la aplicacion para una guia paso a paso con botones interactivos.
Flag
(acceso al panel admin tras cambio de contrasena)
Remediacion
- Sanitizar HTML antes de renderizar (DOMPurify)
- Requerir contrasena actual para cambios
- Content-Security-Policy
- HttpOnly cookies