SSRF with Corporate Token Exfiltration
Plataforma de archivos con herramienta de preview de websites que realiza peticiones server-side con un token corporativo en los headers, permitiendo acceder a servicios internos protegidos
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
SSRF with Corporate Token Exfiltration
Community writeups
Credenciales
| Usuario | Contrasena | Rol |
|---|---|---|
| alice | password123 | user |
Despliegue
# Opcion 1: autodeploy
./autodeploy.sh
# Opcion 2: manual
docker compose up --build
# Acceder
http://localhost:1100
Compatible con macOS, Linux y Windows (Docker Desktop / WSL).
Para parar:
./autodeploy.sh destroy
# o: docker compose down -v
Contenido del Lab
La aplicacion
FileForge es una plataforma de gestion de archivos con funcionalidad de preview de websites que realiza fetch server-side.
La vulnerabilidad
El Website Preview tool hace fetch(url) desde el servidor, adjuntando automaticamente un header X-Corporate-Token. El servicio CorpVault en el puerto 1101 (solo accesible internamente) devuelve credenciales si recibe el token correcto.
Cadena de ataque
1. Usar Website Preview con URL normal
2. Cambiar URL a http://localhost:1101
3. El servidor hace fetch con X-Corporate-Token
4. CorpVault devuelve credenciales
5. Flag en las credenciales exfiltradas
Solucion interactiva
Accede a /writeup dentro de la aplicacion para una guia paso a paso con botones interactivos.
Remediacion
- Whitelist de URLs/dominios permitidos para preview
- No enviar tokens/headers internos en peticiones a URLs de usuario
- Bloquear acceso a localhost y rangos privados (127.0.0.0/8, 10.0.0.0/8)
- Usar proxy dedicado sin credenciales para peticiones externas