Retour aux mises à jour
New releaseSep 14, 2026

WebGoat v2026.3

Application web volontairement vulnérable avec des leçons interactives et des défis pour apprendre la sécurité des applications web et les techniques de test d'intrusion.

Partager

WebGoat : une application web volontairement non sécurisée

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

Introduction

WebGoat est une application web volontairement non sécurisée maintenue par OWASP et conçue pour enseigner des leçons sur la sécurité des applications web.

Ce programme est une démonstration des failles applicatives côté serveur les plus courantes. Les exercices sont destinés à des personnes qui souhaitent apprendre les techniques de sécurité des applications et de test d'intrusion.

AVERTISSEMENT 1 : Pendant l'exécution de ce programme, votre machine sera extrêmement vulnérable aux attaques. Vous devriez vous déconnecter d'Internet pendant l'utilisation de ce programme. La configuration par défaut de WebGoat écoute sur localhost afin de minimiser l'exposition.

AVERTISSEMENT 2 : Ce programme est fourni uniquement à des fins éducatives. Si vous tentez ces techniques sans autorisation, vous avez de très fortes chances de vous faire prendre. Si vous êtes pris en train de pratiquer du piratage non autorisé, la plupart des entreprises vous licencieront. Prétendre que vous faisiez de la recherche en sécurité ne fonctionnera pas, car c'est la première chose que tous les pirates affirment.

WebGoat

Instructions d'installation :

Pour plus de détails, consultez le guide de contribution

1. Exécuter avec Docker

Si vous avez déjà un navigateur ainsi que ZAP et/ou Burp installés sur votre machine, vous pouvez dans ce cas exécuter l'image WebGoat directement avec Docker.

Chaque version est également publiée sur DockerHub.

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

Pour certaines leçons, vous devez exécuter le conteneur dans le même fuseau horaire. Pour cela, vous pouvez définir la variable d'environnement TZ. Par exemple :

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

Si vous souhaitez utiliser OWASP ZAP ou un autre proxy, vous ne pouvez plus utiliser 127.0.0.1 ni localhost, mais vous pouvez utiliser des entrées d'hôtes personnalisées. Par exemple :

127.0.0.1 www.webgoat.local www.webwolf.local

Vous pouvez alors exécuter le conteneur avec :

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

Puis visitez http://www.webgoat.local:8080/WebGoat/ et http://www.webwolf.local:9090/WebWolf/

2. Exécuter avec Docker et un bureau Linux complet

Plutôt que d'installer les outils localement, nous fournissons une image Docker complète basée sur un bureau exécuté dans votre navigateur. Vous n'avez ainsi qu'à exécuter une image Docker, ce qui vous offrira la meilleure expérience utilisateur.

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

3. Autonome

Téléchargez la dernière version de WebGoat depuis https://github.com/WebGoat/WebGoat/releases

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

Cliquez sur le lien dans le journal pour démarrer WebGoat.

3.1 Exécution sur un autre port

Si pour une raison quelconque vous souhaitez exécuter WebGoat sur un autre port, vous pouvez le faire en ajoutant le paramètre suivant :

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

Pour un aperçu complet de tous les paramètres disponibles, consultez le [fichier de propriétés WebGoat](webgoat-container/src/main/resources/application-{webgoat, webwolf}.properties).

4. Exécuter à partir des sources

Prérequis :

  • Java 25
  • Votre IDE préféré
  • Git, ou le support Git dans votre IDE

Ouvrez un shell / une fenêtre de commande :

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

Commençons maintenant par compiler le projet.

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

Nous sommes maintenant prêts à exécuter le projet. WebGoat utilise Spring Boot.

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

... WebGoat devrait être accessible momentanément sur http://localhost:8080/WebGoat/.

Remarque : le lien ci-dessus vous redirigera vers la page de connexion si vous n'êtes pas connecté. Connectez-vous / créez un compte pour continuer.

Pour changer l'adresse IP, ajoutez la variable suivante au fichier WebGoat/webgoat-container/src/main/resources/application.properties :

server.address=x.x.x.x

4. Exécuter avec un menu personnalisé

Réservé aux spécialistes. Il est possible de configurer WebGoat avec un menu personnalisé. Vous pouvez exclure certaines catégories de menu ou certaines leçons en définissant certaines variables d'environnement.

Par exemple, lors d'une exécution en tant que jar sur Linux/macOS, cela ressemblera à ceci :

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

Ou dans un lancement Docker, cela ressemblerait (une fois cette version poussée sur Docker Hub) à ceci :

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

Catégories