Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
VAmPI — API REST vulnerable con las 10 principales vulnerabilidades de OWASP para pruebas de seguridad | Kitploit
Herramientas/GitHubGitHub/erev0s/vampi
Escáneres de Vulnerabilidades WebAnálisis de VulnerabilidadesPruebas de Seguridad de APIsAprendizaje y EducaciónLabs y Práctica
GitHuberev0s/vampi

VAmPI

API REST vulnerable con las 10 principales vulnerabilidades de OWASP para pruebas de seguridad

Ver Repositorio
1.3k58016hace 5 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

VAmPI

La API Vulnerable (Basada en OpenAPI 3) vampi

Docker Image CI Docker Pulls

VAmPI es una API vulnerable hecha con Flask que incluye vulnerabilidades del OWASP top 10 para APIs. Fue creada porque quería una API vulnerable para evaluar la eficiencia de herramientas utilizadas para detectar problemas de seguridad en APIs. Incluye un interruptor de encendido/apagado para permitir que la API sea vulnerable o no durante las pruebas. Esto permite cubrir mejor los casos de falsos positivos/negativos. VAmPI también puede usarse con fines de aprendizaje/enseñanza. Puedes encontrar más detalles sobre las vulnerabilidades en erev0s.com.

Características

  • Basado en las vulnerabilidades OWASP Top 10 para APIs.
  • Especificaciones OpenAPI3 y Colección Postman incluidas.
  • Interruptor global de encendido/apagado para tener un entorno vulnerable o no.
  • Autenticación basada en token (ajusta la vida útil desde app.py)
  • Swagger UI disponible para interactuar directamente con la API

El flujo de acciones de VAmPI es el siguiente: un usuario no registrado puede ver información mínima sobre los usuarios de prueba incluidos en la API. Un usuario puede registrarse y luego iniciar sesión para poder usar el token recibido durante el inicio de sesión y publicar un libro. Para un libro publicado, los datos aceptados son el título y un secreto sobre ese libro. Cada libro es único para cada usuario y solo el propietario del libro debería poder ver el secreto.

A continuación se muestra un breve resumen de las acciones incluidas:

AcciónRutaDetalles
GET/createdbCrea y llena la base de datos con datos de prueba
GET/Inicio de VAmPI
GET/meMuestra el usuario que ha iniciado sesión
GET/users/v1Muestra todos los usuarios con información básica
GET/users/v1/_debugMuestra todos los detalles de todos los usuarios
POST/users/v1/registerRegistrar nuevo usuario
POST/users/v1/loginIniciar sesión en VAmPI
GET/users/v1/{username}Muestra usuario por nombre de usuario
DELETE/users/v1/{username}Elimina usuario por nombre de usuario (solo administradores)
PUT/users/v1/{username}/emailActualizar el correo electrónico de un usuario
PUT/users/v1/{username}/passwordActualizar la contraseña del usuario
GET/books/v1Recupera todos los libros
POST/books/v1Añadir nuevo libro
GET/books/v1/{book}Recupera libro por título junto con su secreto

Para más detalles, puedes ejecutar VAmPI y visitar http://127.0.0.1:5000/ui/ o usar un servicio como el swagger editor proporcionando la especificación OpenAPI que se encuentra en el directorio openapi_specs.

Lista de vulnerabilidades

  • Inyección SQLi
  • Cambio de contraseña no autorizado
  • Autorización a nivel de objeto rota
  • Asignación masiva
  • Exposición excesiva de datos a través del endpoint de depuración
  • Enumeración de usuarios y contraseñas
  • RegexDOS (Denegación de servicio)
  • Falta de recursos y limitación de tasa
  • Bypass de autenticación JWT mediante clave de firma débil

Ejecutarlo

Es una aplicación Flask, por lo que para ejecutarla puedes instalar todos los requisitos y luego ejecutar app.py. Para instalar todos los requisitos, simplemente ejecuta pip3 install -r requirements.txt y luego python3 app.py.

O si lo prefieres, también puedes ejecutarlo a través de docker o docker compose.

Ejecutarlo a través de Docker

  • Disponible en Dockerhub
docker run -p 5000:5000 erev0s/vampi:latest

[Nota: si ejecutas Docker en versiones más recientes de macOS, usa -p 5001:5000 para evitar conflictos con el servicio AirPlay Receiver. Alternativamente, puedes deshabilitar el servicio AirPlay Receiver en Preferencias del Sistema -> Compartir.]

Ejecutarlo a través de Docker Compose

docker-compose contiene dos instancias, una con la configuración segura en el puerto 5001 y otra con la configuración insegura en el puerto 5002:

docker-compose up -d

Swagger UI disponible 🚀

Visita la ruta /ui donde se está ejecutando la API y un Swagger UI estará disponible para ayudarte a empezar.

http://127.0.0.1:5000/ui/

Personalización del tiempo de expiración del token y entorno vulnerable o no

Si deseas modificar el tiempo de expiración del token creado después del inicio de sesión o si quieres cambiar el entorno para que no sea vulnerable, puedes usar algunas formas según cómo ejecutes la aplicación.

  • Si la ejecutas normalmente con python3 app.py, todo lo que tienes que hacer es editar las variables alive y vuln definidas en el propio app.py. La variable alive se mide en segundos, por lo que si pones 100, el token expira después de 100 segundos. La variable vuln es como un booleano: si la estableces en 1, la aplicación es vulnerable; si la estableces en 0, la aplicación no es vulnerable.
  • Si la ejecutas a través de Docker, debes pasar variables de entorno al comando docker run o editar el Dockerfile y reconstruir.
    • Ejemplo de Docker run: docker run -d -e vulnerable=0 -e tokentimetolive=300 -p 5000:5000 erev0s/vampi:latest

      • Una característica útil al ejecutarlo de esta manera es que puedes iniciar un segundo contenedor con vulnerable=1 en un puerto diferente y cambiar fácilmente entre los dos.
    • En el Dockerfile encontrarás dos variables de entorno establecidas: ENV vulnerable=1 y ENV tokentimetolive=60. Siéntete libre de cambiarlas antes de ejecutar el comando de construcción de docker.

Preguntas frecuentes

  • ¡Se produce un error de base de datos al acceder a los endpoints!
    • Asegúrate de hacer una solicitud al endpoint /createdb para llenar la base de datos.

Imagen de freepik - www.freepik.com

Descargar herramienta