
WebGoat v2026.5
Applicazione web volutamente vulnerabile con lezioni interattive e sfide per imparare la sicurezza delle applicazioni web e le tecniche di penetration testing.
WebGoat: un'applicazione web deliberatamente non sicura
Introduzione
WebGoat è un'applicazione web deliberatamente non sicura mantenuta da OWASP progettata per insegnare lezioni sulla sicurezza delle applicazioni web.
Questo programma è una dimostrazione di comuni vulnerabilità delle applicazioni lato server. Gli esercizi sono pensati per essere utilizzati da chiunque voglia apprendere tecniche di sicurezza delle applicazioni e di penetration testing.
AVVERTENZA 1: Durante l'esecuzione di questo programma la tua macchina sarà estremamente vulnerabile agli attacchi. Dovresti disconnetterti da Internet mentre utilizzi questo programma. La configurazione predefinita di WebGoat si associa a localhost per ridurre al minimo l'esposizione.
AVVERTENZA 2: Questo programma è solo a scopo didattico. Se tenti queste tecniche senza autorizzazione, è molto probabile che verrai scoperto. Se vieni scoperto a praticare hacking non autorizzato, la maggior parte delle aziende ti licenzierà. Affermare di fare ricerca sulla sicurezza non funzionerà, perché è la prima cosa che tutti gli hacker dichiarano.

Istruzioni per l'installazione:
Per maggiori dettagli consulta la guida alla contribuzione
1. Esecuzione tramite 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 è anche 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 questo 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 tramite Docker con 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 # or your timezone
java -Dfile.encoding=UTF-8 -jar webgoat-2023.8.jar
Clicca il link 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
Nel JAR combinato, --server.port è un alias per --webgoat.port. Usa --webwolf.port per impostare la porta di WebWolf separatamente.
Per le impostazioni disponibili, consulta le proprietà di WebGoat e le proprietà di WebWolf.
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>>
# On Linux/Mac:
./mvnw clean install
# On Windows:
./mvnw.cmd clean install
If you have ran WebGoat before, you should first run mvn clean -Pcleanall to clean up files from your temp and home directories which could fail the tests due to changes in lessons!
# Using docker or podman, you can than build the container locally
docker build -f Dockerfile . -t webgoat/webgoat
Ora siamo pronti per eseguire il progetto. WebGoat utilizza Spring Boot.
# On Linux/Mac:
./mvnw spring-boot:run
# On Windows:
./mvnw.cmd spring-boot:run
... dovresti avere WebGoat in esecuzione su http://localhost:8080/WebGoat a breve.
Nota: il link sopra ti reindirizzerà alla pagina di login 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 omettere alcune categorie di menu o singole lezioni impostando determinate variabili d'ambiente.
Ad esempio, eseguendolo come jar su Linux/macOS apparirà così:
export TZ=Europe/Amsterdam # or your timezone
export EXCLUDE_CATEGORIES="CLIENT_SIDE,GENERAL,CHALLENGE"
export EXCLUDE_LESSONS="SqlInjectionAdvanced,SqlInjectionMitigations"
java -jar target/webgoat-2023.8-SNAPSHOT.jar
Oppure in un docker run apparirà così (una volta che questa versione sarà pubblicata su docker hub):
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