Torna agli aggiornamenti
New releaseSep 14, 2026

WebGoat v2026.3

Applicazione web volutamente vulnerabile con lezioni interattive e sfide per imparare la sicurezza delle applicazioni web e le tecniche di penetration testing.

Condividi

WebGoat: un'applicazione web deliberatamente insicura

Build java-jdk OWASP Labs GitHub release Gitter Discussions Conventional Commits

Introduzione

WebGoat è un'applicazione web deliberatamente insicura mantenuta da OWASP, progettata per insegnare lezioni sulla sicurezza delle applicazioni web.

Questo programma è una dimostrazione dei comuni difetti delle applicazioni lato server. Gli esercizi sono pensati per essere usati da persone che vogliono imparare la sicurezza delle applicazioni e le tecniche di penetration testing.

AVVERTENZA 1: Durante l'esecuzione di questo programma la tua macchina sarà estremamente vulnerabile agli attacchi. Dovresti disconnetterti da Internet mentre usi questo programma. La configurazione predefinita di WebGoat si vincola a localhost per minimizzare l'esposizione.

AVVERTENZA 2: Questo programma è solo a scopo educativo. Se provi queste tecniche senza autorizzazione, è molto probabile che venga scoperto. Se vieni scoperto mentre esegui hacking non autorizzato, la maggior parte delle aziende ti licenzierà. Dire che stavi facendo ricerca sulla sicurezza non funzionerà, poiché è la prima cosa che tutti gli hacker affermano.

WebGoat

Istruzioni di installazione:

Per maggiori dettagli consulta la guida al contributo

1. Esecuzione con Docker

Se hai già un browser e ZAP e/o Burp installati sulla tua macchina, in questo caso puoi eseguire direttamente l'immagine WebGoat usando Docker.

Ogni release è inoltre pubblicata su DockerHub.

docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/webgoat

Per alcune lezioni è necessario che il container venga eseguito nello stesso fuso orario. Per fare ciò puoi impostare la variabile d'ambiente TZ. Ad esempio:

docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=America/Boise webgoat/webgoat

Se vuoi usare OWASP ZAP o un altro proxy, non puoi più usare 127.0.0.1 o localhost, ma puoi usare voci host personalizzate. Ad esempio:

127.0.0.1 www.webgoat.local www.webwolf.local

Poi puoi eseguire il container con:

docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e WEBGOAT_HOST=www.webgoat.local -e WEBWOLF_HOST=www.webwolf.local -e TZ=America/Boise webgoat/webgoat

Poi visita http://www.webgoat.local:8080/WebGoat/ e http://www.webwolf.local:9090/WebWolf/

2. Esecuzione con Docker e desktop Linux completo

Invece di installare gli strumenti localmente, abbiamo un'immagine Docker completa basata sull'esecuzione di un desktop nel tuo browser. In questo modo devi solo eseguire un'immagine Docker che ti offrirà la migliore esperienza utente.

docker run -p 127.0.0.1:3000:3000 webgoat/webgoat-desktop

3. Standalone

Scarica l'ultima release di WebGoat da https://github.com/WebGoat/WebGoat/releases

export TZ=Europe/Amsterdam # o il tuo fuso orario
java -Dfile.encoding=UTF-8 -jar webgoat-2023.8.jar

Fai clic sul collegamento nel log per avviare WebGoat.

3.1 Esecuzione su una porta diversa

Se per qualche motivo vuoi eseguire WebGoat su una porta diversa, puoi farlo aggiungendo il seguente parametro:

java -jar webgoat-2023.8.jar --webgoat.port=8001 --webwolf.port=8002

Per una panoramica completa di tutti i parametri utilizzabili, consulta il [file delle proprietà di WebGoat](webgoat-container/src/main/resources/application-{webgoat, webwolf}.properties).

4. Esecuzione dai sorgenti

Prerequisiti:

  • Java 25
  • Il tuo IDE preferito
  • Git, o il supporto Git nel tuo IDE

Apri una shell/finestra dei comandi:

git clone [email protected]:WebGoat/WebGoat.git

Ora iniziamo compilando il progetto.

cd WebGoat
git checkout <<branch_name>>
# Su Linux/Mac:
./mvnw clean install

# Su Windows:
./mvnw.cmd clean install

Se hai già eseguito WebGoat in precedenza, dovresti prima eseguire mvn clean -Pcleanall per pulire i file dalle directory temp e home che potrebbero causare il fallimento dei test a causa delle modifiche alle lezioni!

# Usando docker o podman, puoi quindi costruire il container localmente
docker build -f Dockerfile . -t webgoat/webgoat

Ora siamo pronti per eseguire il progetto. WebGoat usa Spring Boot.

# Su Linux/Mac:
./mvnw spring-boot:run
# Su Windows:
./mvnw.cmd spring-boot:run

... dovresti avere WebGoat in esecuzione su http://localhost:8080/WebGoat a breve.

Nota: il collegamento sopra ti reindirizzerà alla pagina di accesso se non hai effettuato l'accesso. Accedi/Crea un account per procedere.

Per cambiare l'indirizzo IP aggiungi la seguente variabile al file WebGoat/webgoat-container/src/main/resources/application.properties:

server.address=x.x.x.x

4. Esecuzione con menu personalizzato

Solo per specialisti. Esiste un modo per configurare WebGoat con un menu personalizzato. Puoi escludere alcune categorie di menu o singole lezioni impostando determinate variabili d'ambiente.

Ad esempio, eseguendo un jar su Linux/macOS sarà così:

export TZ=Europe/Amsterdam # o il tuo fuso orario
export EXCLUDE_CATEGORIES="CLIENT_SIDE,GENERAL,CHALLENGE"
export EXCLUDE_LESSONS="SqlInjectionAdvanced,SqlInjectionMitigations"
java -jar target/webgoat-2023.8-SNAPSHOT.jar

Oppure in un'esecuzione docker sarebbe (una volta che questa versione viene pubblicata su docker hub) così:

docker run -d -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e EXCLUDE_CATEGORIES="CLIENT_SIDE,GENERAL,CHALLENGE" -e EXCLUDE_LESSONS="SqlInjectionAdvanced,SqlInjectionMitigations" webgoat/webgoat

Categorie