Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
VAmPI — API REST vulnérable avec les 10 principales vulnérabilités OWASP pour les tests de sécurité | Kitploit
Outils/GitHubGitHub/erev0s/vampi
Scanners de Vulnérabilités WebAnalyse des VulnérabilitésTests de Sécurité des APIApprentissage et ÉducationLabs et Pratique
GitHuberev0s/vampi

VAmPI

API REST vulnérable avec les 10 principales vulnérabilités OWASP pour les tests de sécurité

Voir le dépôt
1.3k58016il y a 5 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

VAmPI

L'API Vulnérable (Basée sur OpenAPI 3) vampi

Docker Image CI Docker Pulls

VAmPI est une API vulnérable créée avec Flask et inclut des vulnérabilités du top 10 OWASP pour les API. Elle a été créée car je souhaitais une API vulnérable pour évaluer l'efficacité des outils utilisés pour détecter des problèmes de sécurité dans les API. Elle comporte un interrupteur pour activer ou désactiver la vulnérabilité lors des tests, permettant ainsi de mieux couvrir les cas de faux positifs/négatifs. VAmPI peut également être utilisée à des fins d'apprentissage ou d'enseignement. Vous trouverez plus de détails sur les vulnérabilités sur erev0s.com.

Fonctionnalités

  • Basé sur les vulnérabilités OWASP Top 10 pour les API.
  • Spécifications OpenAPI3 et collection Postman incluses.
  • Interrupteur global pour activer ou désactiver l'environnement vulnérable.
  • Authentification basée sur jeton (ajustez la durée de vie depuis app.py).
  • Interface Swagger UI disponible pour interagir directement avec l'API.

Le flux d'actions de VAmPI se déroule ainsi : un utilisateur non enregistré peut voir des informations minimales sur les utilisateurs fictifs inclus dans l'API. Un utilisateur peut s'inscrire, puis se connecter pour utiliser le jeton reçu lors de la connexion afin de publier un livre. Pour un livre publié, les données acceptées sont le titre et un secret concernant ce livre. Chaque livre est unique pour chaque utilisateur et seul le propriétaire du livre devrait pouvoir voir le secret.

Un aperçu rapide des actions incluses peut être consulté dans le tableau suivant :

ActionCheminDétails
GET/createdbCrée et remplit la base de données avec des données fictives
GET/Page d'accueil VAmPI
GET/meAffiche l'utilisateur connecté
GET/users/v1Affiche tous les utilisateurs avec des informations de base
GET/users/v1/_debugAffiche tous les détails pour tous les utilisateurs
POST/users/v1/registerInscrire un nouvel utilisateur
POST/users/v1/loginSe connecter à VAmPI
GET/users/v1/{username}Affiche l'utilisateur par nom d'utilisateur
DELETE/users/v1/{username}Supprime l'utilisateur par nom d'utilisateur (Admin seulement)
PUT/users/v1/{username}/emailMet à jour l'adresse e-mail d'un utilisateur
PUT/users/v1/{username}/passwordMet à jour le mot de passe de l'utilisateur
GET/books/v1Récupère tous les livres
POST/books/v1Ajouter un nouveau livre
GET/books/v1/{book}Récupère un livre par titre ainsi que son secret

Pour plus de détails, vous pouvez soit exécuter VAmPI et visiter http://127.0.0.1:5000/ui/, soit utiliser un service comme le swagger editor en fournissant la spécification OpenAPI qui se trouve dans le répertoire openapi_specs.

Liste des vulnérabilités

  • Injection SQLi
  • Changement de mot de passe non autorisé
  • Autorisation de niveau d'objet brisée
  • Assignation en masse
  • Exposition excessive de données via le point de terminaison de débogage
  • Énumération des utilisateurs et mots de passe
  • RegexDOS (Déni de service)
  • Manque de ressources et limitation de débit
  • Contournement de l'authentification JWT via une clé de signature faible

Exécution

C'est une application Flask, donc pour l'exécuter, vous pouvez installer toutes les dépendances puis lancer app.py. Pour installer toutes les dépendances, exécutez simplement pip3 install -r requirements.txt puis python3 app.py.

Ou, si vous préférez, vous pouvez également l'exécuter via Docker ou Docker Compose.

Exécution via Docker

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

[Remarque : si vous exécutez Docker sur des versions récentes de macOS, utilisez -p 5001:5000 pour éviter les conflits avec le service AirPlay Receiver. Vous pouvez également désactiver le service AirPlay Receiver dans Préférences Système -> Partage.]

Exécution via Docker Compose

docker-compose contient deux instances, une avec la configuration sécurisée sur le port 5001 et une autre avec la configuration non sécurisée sur le port 5002 :

docker-compose up -d

Interface Swagger UI disponible 🚀

Visitez le chemin /ui là où vous exécutez l'API et une interface Swagger UI sera disponible pour vous aider à démarrer !

http://127.0.0.1:5000/ui/

Personnalisation du délai d'expiration du jeton et de l'environnement vulnérable ou non

Si vous souhaitez modifier le délai d'expiration du jeton créé après la connexion ou si vous voulez changer l'environnement pour qu'il ne soit pas vulnérable, vous pouvez utiliser plusieurs méthodes selon la façon dont vous exécutez l'application.

  • Si vous l'exécutez normalement avec python3 app.py, il vous suffit de modifier les variables alive et vuln définies dans app.py lui-même. La variable alive est mesurée en secondes, donc si vous mettez 100, le jeton expire après 100 secondes. La variable vuln est booléenne, si vous la mettez à 1, l'application est vulnérable, et si vous la mettez à 0, l'application n'est pas vulnérable.
  • Si vous l'exécutez via Docker, vous devez soit passer des variables d'environnement à la commande docker run, soit modifier le Dockerfile et reconstruire.
    • Exemple Docker run : docker run -d -e vulnerable=0 -e tokentimetolive=300 -p 5000:5000 erev0s/vampi:latest

      • Une fonctionnalité intéressante en l'exécutant ainsi est que vous pouvez démarrer un second conteneur avec vulnerable=1 sur un port différent et basculer facilement entre les deux.
    • Dans le Dockerfile, vous trouverez deux variables d'environnement définies : ENV vulnerable=1 et ENV tokentimetolive=60. N'hésitez pas à les modifier avant d'exécuter la commande docker build.

Questions fréquemment posées

  • Il y a une erreur de base de données lors de l'accès aux points de terminaison !
    • Assurez-vous d'envoyer une requête au point de terminaison /createdb afin de remplir la base de données.

Image de freepik - www.freepik.com

Télécharger l’outil