Broken Function Level Authorization
Aplicacion de notas con endpoints administrativos que no validan correctamente el metodo HTTP. El desarrollador protegio GET/PUT/POST pero olvido proteger PATCH en el endpoint de cambio de contrasena, permitiendo cambiar la contrasena de cualquier usuario sin autenticacion de admin.
This hack was reported with no reward
Learn to find this bug
A real hack, 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
labs from real hacks
completions
paid out for these bugs
Access to all labs · no commitment · cancel anytime
Hackers who solved it· 8
Objectives
Achievement you'll earn
Solve this lab to unlock this shareable achievement

Community writeups
The checklist I run on every new target
47 checks ordered by cost: first what can get you in trouble, then the cheap stuff, and finally the expensive stuff — which is where the big bounties are. I'll send it to your inbox right now.
Unsubscribe in one click, from any email.
Credenciales
| Usuario | Contrasena | Rol |
|---|---|---|
| sarah | password123 | user |
| marcus | password123 | user |
| elena | password123 | user |
Despliegue
# Opcion 1: autodeploy
./autodeploy.sh
# Opcion 2: manual
docker compose up --build
# Acceder
https://localhost:1001
Compatible con macOS, Linux y Windows (Docker Desktop / WSL).
Para parar:
./autodeploy.sh destroy
# o: docker compose down -v
Contenido del Lab
La aplicacion
NoteVault es una aplicacion de notas personales con sistema de notas compartidas, feed publico y panel de administracion. Los usuarios pueden crear, editar y compartir notas.
La vulnerabilidad
El endpoint /api/changepassword esta protegido con authMiddleware y adminMiddleware para los metodos PUT y POST, pero el desarrollador olvido anadir los middlewares para el metodo PATCH. Esto permite a cualquier usuario autenticado cambiar la contrasena de cualquier otro usuario.
Cadena de ataque
1. Registrarse y explorar la app
2. Descubrir /api → lista de endpoints
3. Probar PUT /api/changepassword → 403
4. Probar PATCH /api/changepassword → Funciona sin admin!
5. Cambiar contrasena del admin
6. Login como admin → Panel administrativo
7. Flag en el dashboard
Solucion interactiva
Accede a /writeup dentro de la aplicacion para una guia paso a paso con botones interactivos.
Flag
5f4dcc3b5aa765d61d8327deb882cf99
Remediacion
- Aplicar middlewares de autorizacion a TODOS los metodos HTTP del endpoint
- Usar router.all() o app.use() para aplicar middleware a nivel de ruta completa
- Implementar tests de autorizacion para cada metodo HTTP
- Auditar regularmente los middlewares de cada endpoint
