Zurück zu den Updates
New releaseSep 14, 2026

WebGoat v2026.3

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

Teilen

WebGoat: Eine absichtlich unsichere Webanwendung

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

Einführung

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

Dieses Programm ist eine Demonstration häufiger Schwachstellen serverseitiger Anwendungen. Die Übungen sind dafür gedacht, dass Menschen etwas über Anwendungssicherheit und Techniken des Penetrationstests lernen.

WARNUNG 1: Während dieses Programm läuft, ist Ihr Rechner extrem angreifbar. Sie sollten während der Verwendung dieses Programms die Internetverbindung trennen. Die Standardkonfiguration von WebGoat bindet an localhost, um die Gefährdung zu minimieren.

WARNUNG 2: Dieses Programm dient ausschließlich Bildungszwecken. Wenn Sie diese Techniken ohne Autorisierung ausprobieren, werden Sie sehr wahrscheinlich erwischt. Wenn Sie bei unbefugtem Hacken erwischt werden, werden die meisten Unternehmen Sie entlassen. Zu behaupten, Sie hätten Sicherheitsforschung betrieben, wird nicht funktionieren, denn das ist das Erste, was alle Hacker behaupten.

WebGoat

Installationsanleitung:

Weitere Einzelheiten finden Sie im Beitragsleitfaden

1. Ausführen mit Docker

Wenn Sie bereits einen Browser sowie 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 muss der Container in derselben Zeitzone laufen. Dazu 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 127.0.0.1 oder localhost nicht mehr verwenden. Sie können jedoch benutzerdefinierte Host-Einträge verwenden. Zum Beispiel:

127.0.0.1 www.webgoat.local www.webwolf.local

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

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ühren mit Docker und vollständigem Linux-Desktop

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

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

3. Eigenständig

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ühren 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

Eine vollständige Übersicht aller verwendbaren Parameter finden Sie in der [WebGoat-Eigenschaftendatei](webgoat-container/src/main/resources/application-{webgoat, webwolf}.properties).

4. Ausführen aus dem Quellcode

Voraussetzungen:

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

Öffnen Sie eine Befehlsshell/ein Befehlsfenster:

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

Jetzt beginnen wir mit der Kompilierung 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

... sollten Sie WebGoat in Kürze unter http://localhost:8080/WebGoat laufen haben.

Hinweis: Der obige Link leitet Sie zur Anmeldeseite weiter, wenn Sie nicht angemeldet sind. Melden Sie sich an oder 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ühren 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.

Zum Beispiel sieht das bei der Ausführung als JAR unter Linux/macOS wie folgt 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 bei einem Docker-Run würde es (sobald diese Version in Docker Hub veröffentlicht wurde) wie folgt 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