VAmPI es una API REST (Flask) que implementa a propósito vulnerabilidades del OWASP API Security Top 10. Tras levantarla en el puerto 5000, inicializar la base de datos:
curl http://127.0.0.1:5000/createdb
La especificación OpenAPI se explora en http://127.0.0.1:5000/ui/.
Retos propuestos
- Excessive Data Exposure (API3): listar usuarios con el endpoint de debug y observar qué campos devuelve.
curl http://127.0.0.1:5000/users/v1/_debug - Mass Assignment (API6): registrar un usuario que quede como administrador.
curl -X POST http://127.0.0.1:5000/users/v1/register \ -H 'Content-Type: application/json' \ -d '{"username":"alumno","password":"Alumno123","email":"a@lab.local","admin":true}' - BOLA (API1): con un token propio, leer el secret de un libro que pertenece a otro usuario
(
GET /books/v1/{book_title}). - SQL Injection (API8): probar comillas en
GET /users/v1/{username}. - User enumeration y falta de rate limiting (API2/API4): comparar las respuestas de login para usuarios existentes e inexistentes.
Modo seguro
VAmPI arranca en modo vulnerable (vulnerable=1). Cambiar a vulnerable=0 en el docker-compose.yml
permite comparar cada respuesta con la versión corregida.