Zurück zu den Updates
New releaseOct 12, 2026

WebGoat v2026.5

Absichtlich verwundbare Webanwendung mit interaktiven Lektionen und Herausforderungen zum Erlernen von Webanwendungssicherheit und Penetrationstest-Techniken.

Teilen

WebGoat: Eine bewusst unsichere Webanwendung

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

Einführung

WebGoat ist eine bewusst unsichere Webanwendung, die von OWASP gepflegt wird und dazu dient, Lektionen zur Sicherheit von Webanwendungen zu vermitteln.

Dieses Programm ist eine Demonstration häufiger serverseitiger Anwendungsfehler. Die Übungen sind dafür gedacht, dass Personen etwas über Anwendungssicherheit und Penetrationstesting-Techniken lernen.

WARNUNG 1: Während dieses Programm läuft, ist Ihr Rechner extrem anfällig für Angriffe. Sie sollten die Verbindung zum Internet trennen, während Sie dieses Programm verwenden. WebGoats Standardkonfiguration bindet an localhost, um die Exposition zu minimieren.

WARNUNG 2: Dieses Programm dient ausschließlich Bildungszwecken. Wenn Sie diese Techniken ohne Autorisierung anwenden, werden Sie sehr wahrscheinlich erwischt. Wenn Sie beim unbefugten Hacken erwischt werden, werden die meisten Unternehmen Sie entlassen. Die Behauptung, Sie hätten Sicherheitsforschung betrieben, wird nicht funktionieren, da dies das Erste ist, was alle Hacker behaupten.

WebGoat

Installationsanweisungen:

Weitere Details finden Sie im Contribution guide

1. Ausführung mit Docker

Wenn Sie bereits einen Browser und ZAP und/oder Burp auf Ihrem Rechner installiert haben, können Sie das WebGoat-Image in diesem Fall direkt mit Docker ausführen.

Jede Version wird auch auf DockerHub veröffentlicht.

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

Für einige Lektionen müssen Sie den Container in derselben Zeitzone ausführen. Dafür können Sie die Umgebungsvariable TZ setzen. Z. B.

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

Wenn Sie OWASP ZAP oder einen anderen Proxy verwenden möchten, können Sie nicht mehr 127.0.0.1 oder localhost verwenden, aber Sie können benutzerdefinierte Host-Einträge verwenden. Zum Beispiel:

127.0.0.1 www.webgoat.local www.webwolf.local

Dann können Sie den Container ausführen mit:

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

Besuchen Sie dann http://www.webgoat.local:8080/WebGoat/ und http://www.webwolf.local:9090/WebWolf/

2. Ausführung mit Docker und vollständigem Linux-Desktop

Anstatt Tools lokal zu installieren, haben wir ein vollständiges Docker-Image, das auf einem Desktop in Ihrem Browser basiert. Auf diese Weise müssen Sie nur ein Docker-Image ausführen, was Ihnen die beste Benutzererfahrung bietet.

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

3. Standalone

Laden Sie die neueste WebGoat-Version von https://github.com/WebGoat/WebGoat/releases herunter

export TZ=Europe/Amsterdam # or your timezone
java -Dfile.encoding=UTF-8 -jar webgoat-2023.8.jar

Klicken Sie auf den Link im Log, um WebGoat zu starten.

3.1 Ausführung auf einem anderen Port

Wenn Sie WebGoat aus irgendeinem Grund auf einem anderen Port ausführen möchten, können Sie dies tun, indem Sie den folgenden Parameter hinzufügen:

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

Im kombinierten JAR ist --server.port ein Alias für --webgoat.port. Verwenden Sie --webwolf.port, um WebWolfs Port separat festzulegen.

Die verfügbaren Einstellungen finden Sie in den WebGoat properties und WebWolf properties.

4. Ausführung aus den Quellen

Voraussetzungen:

  • Java 25
  • Ihre bevorzugte IDE
  • Git oder Git-Unterstützung in Ihrer IDE

Öffnen Sie eine Kommandozeile/ein Fenster:

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

Jetzt beginnen wir mit dem Kompilieren des Projekts.

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

Jetzt sind wir bereit, das Projekt auszuführen. WebGoat verwendet Spring Boot.

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

... Sie sollten WebGoat in Kürze unter http://localhost:8080/WebGoat ausführen.

Hinweis: Der obige Link leitet Sie zur Anmeldeseite weiter, wenn Sie nicht angemeldet sind. Melden Sie sich an/erstellen Sie ein Konto, um fortzufahren.

Um die IP-Adresse zu ändern, fügen Sie die folgende Variable zur Datei WebGoat/webgoat-container/src/main/resources/application.properties hinzu:

server.address=x.x.x.x

4. Ausführung mit benutzerdefiniertem Menü

Nur für Spezialisten. Es gibt eine Möglichkeit, WebGoat mit einem personalisierten Menü einzurichten. Sie können einige Menükategorien oder einzelne Lektionen weglassen, indem Sie bestimmte Umgebungsvariablen setzen.

Wenn Sie es beispielsweise als JAR unter Linux/macOS ausführen, sieht es so aus:

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

Oder in einem Docker-Run würde es (sobald diese Version in Docker Hub gepusht ist) so aussehen:

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

Kategorien