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
Achievement you'll earn
Solve this lab to unlock this shareable achievement
Content Security Policy Bypass Challenges
Community writeups
Despliegue
# Opcion 1: autodeploy
./autodeploy.sh
# Opcion 2: manual
docker compose up --build
# Acceder
http://localhost:2200
Compatible con macOS, Linux y Windows (Docker Desktop / WSL).
Para parar:
./autodeploy.sh destroy
# o: docker compose down -v
Contenido del Lab
La aplicacion
Plataforma con 8 niveles de CSP progresivamente mas restrictivos. El objetivo es ejecutar alert(1) en cada uno.
La vulnerabilidad
Cada nivel tiene una configuracion CSP diferente con un bypass especifico: unsafe-inline, data:, unsafe-eval, wildcard, JSONP callback, CDN con AngularJS, nonce estatico, y script echo reflection.
Cadena de ataque
Nivel 1: unsafe-inline → <script>alert(1)</script>
Nivel 2: data: → <script src=data:,alert(1)>
Nivel 3: unsafe-eval → eval('alert(1)')
Nivel 4: * wildcard → cargar script externo
Nivel 5: JSONP → callback=alert(1)
Nivel 6: CDN → AngularJS ng-app con expresiones
Nivel 7: nonce hardcoded → reusar nonce
Nivel 8: script echo → reflected input en script
Solucion interactiva
Accede a /writeup dentro de la aplicacion para una guia paso a paso con botones interactivos.
Flag
(alert(1) en cada desafio)
Remediacion
- Nunca usar unsafe-inline o unsafe-eval
- Usar nonces aleatorios por peticion
- Whitelist estricto de dominios
- Evitar JSONP endpoints
- No reflejar input dentro de bloques script