Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
VAmPI — API REST vulnerabile con le vulnerabilità OWASP top 10 per test di sicurezza | Kitploit
Strumenti/GitHubGitHub/erev0s/vampi
Scanner di Vulnerabilità WebAnalisi delle VulnerabilitàTest di Sicurezza delle APIApprendimento e FormazioneLab e Pratica
GitHuberev0s/vampi

VAmPI

API REST vulnerabile con le vulnerabilità OWASP top 10 per test di sicurezza

Vedi Repository
1.3k580155 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

VAmPI

L'API vulnerabile (Basata su OpenAPI 3) vampi

Docker Image CI Docker Pulls

VAmPI è un'API vulnerabile realizzata con Flask e include vulnerabilità dalla top 10 OWASP per le API. È stata creata perché volevo un'API vulnerabile per valutare l'efficienza degli strumenti utilizzati per rilevare problemi di sicurezza nelle API. Include un interruttore on/off per rendere l'API vulnerabile o meno durante il test. Ciò consente di coprire meglio i casi di falsi positivi/negativi. VAmPI può anche essere utilizzata per scopi di apprendimento/insegnamento. Puoi trovare maggiori dettagli sulle vulnerabilità su erev0s.com.

Caratteristiche

  • Basata sulle vulnerabilità OWASP Top 10 per API.
  • Specifiche OpenAPI3 e Postman Collection incluse.
  • Interruttore globale on/off per avere un ambiente vulnerabile o meno.
  • Autenticazione basata su token (regola la durata da app.py).
  • Swagger UI disponibile per interagire direttamente con l'API.

Il flusso di azioni di VAmPI è il seguente: un utente non registrato può vedere informazioni minime sugli utenti fittizi inclusi nell'API. Un utente può registrarsi e poi accedere per poter utilizzare il token ricevuto durante il login per pubblicare un libro. Per un libro pubblicato, i dati accettati sono il titolo e un segreto relativo a quel libro. Ogni libro è unico per ogni utente e solo il proprietario del libro dovrebbe essere autorizzato a visualizzare il segreto.

Una rapida panoramica delle azioni incluse può essere vista nella tabella seguente:

AzionePercorsoDettagli
GET/createdbCrea e popola il database con dati fittizi
GET/Home di VAmPI
GET/meMostra l'utente che ha effettuato l'accesso
GET/users/v1Mostra tutti gli utenti con informazioni di base
GET/users/v1/_debugMostra tutti i dettagli per tutti gli utenti
POST/users/v1/registerRegistra un nuovo utente
POST/users/v1/loginAccedi a VAmPI
GET/users/v1/{username}Mostra l'utente per nome utente
DELETE/users/v1/{username}Elimina l'utente per nome utente (Solo Admin)
PUT/users/v1/{username}/emailAggiorna l'email di un singolo utente
PUT/users/v1/{username}/passwordAggiorna la password dell'utente
GET/books/v1Recupera tutti i libri
POST/books/v1Aggiungi un nuovo libro
GET/books/v1/{book}Recupera il libro per titolo insieme al segreto

Per maggiori dettagli puoi eseguire VAmPI e visitare http://127.0.0.1:5000/ui/ oppure utilizzare un servizio come swagger editor fornendo la specifica OpenAPI che si trova nella directory openapi_specs.

Elenco delle vulnerabilità

  • SQLi Injection
  • Modifica non autorizzata della password
  • Autorizzazione a livello di oggetto interrotta
  • Assegnazione di massa
  • Esposizione eccessiva di dati tramite endpoint di debug
  • Enumerazione di utenti e password
  • RegexDOS (Denial of Service)
  • Mancanza di risorse e limitazione della velocità
  • Bypass dell'autenticazione JWT tramite chiave di firma debole

Eseguilo

È un'applicazione Flask, quindi per eseguirla è possibile installare tutti i requisiti e poi eseguire app.py. Per installare tutti i requisiti basta eseguire pip3 install -r requirements.txt e poi python3 app.py.

Oppure, se preferisci, puoi eseguirlo tramite Docker o Docker Compose.

Eseguilo tramite Docker

  • Disponibile su Dockerhub
docker run -p 5000:5000 erev0s/vampi:latest

[Nota: se esegui Docker su versioni più recenti di MacOS, usa -p 5001:5000 per evitare conflitti con il servizio AirPlay Receiver. In alternativa, puoi disabilitare il servizio AirPlay Receiver in Impostazioni di Sistema -> Condivisione.]

Eseguilo tramite Docker Compose

docker-compose contiene due istanze, una con la configurazione sicura sulla porta 5001 e un'altra con configurazione insicura sulla porta 5002:

docker-compose up -d

Swagger UI disponibile 🚀

Visita il percorso /ui dove è in esecuzione l'API e sarà disponibile una Swagger UI per aiutarti a iniziare!

http://127.0.0.1:5000/ui/

Personalizzazione del timeout del token e dell'ambiente vulnerabile o meno

Se desideri modificare il timeout del token creato dopo il login o se vuoi impostare l'ambiente in modo che non sia vulnerabile, puoi utilizzare alcuni modi a seconda di come esegui l'applicazione.

  • Se la esegui normalmente con python3 app.py, tutto ciò che devi fare è modificare le variabili alive e vuln definite in app.py. La variabile alive è misurata in secondi, quindi se imposti 100, il token scade dopo 100 secondi. La variabile vuln è booleana: se la imposti a 1 l'applicazione è vulnerabile, se la imposti a 0 non lo è.
  • Se la esegui tramite Docker, devi passare le variabili d'ambiente al comando docker run o modificare il Dockerfile e ricostruire.
    • Esempio di esecuzione Docker: docker run -d -e vulnerable=0 -e tokentimetolive=300 -p 5000:5000 erev0s/vampi:latest

      • Una bella caratteristica di questa modalità è che puoi avviare un secondo container con vulnerable=1 su una porta diversa e passare facilmente dall'uno all'altro.
    • Nel Dockerfile troverai due variabili d'ambiente impostate: ENV vulnerable=1 e ENV tokentimetolive=60. Sentiti libero di modificarle prima di eseguire il comando docker build.

Domande frequenti

  • Si verifica un errore del database quando si accede agli endpoint!
    • Assicurati di inviare una richiesta all'endpoint /createdb per popolare il database.

Immagine da freepik - www.freepik.com

Scarica lo strumento