Retour aux mises à jour
New releaseOct 12, 2026

WebGoat v2026.5

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 délibérément non sécurisée

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

Introduction

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

Ce programme est une démonstration de failles courantes d'applications côté serveur. Les exercices sont destinés à être utilisés par des personnes souhaitant apprendre les techniques de sécurité des applications et de tests d'intrusion.

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

AVERTISSEMENT 2 : Ce programme est uniquement à des fins éducatives. Si vous tentez ces techniques sans autorisation, vous avez de très fortes chances d'être pris. Si vous êtes pris en train de pratiquer du hacking 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 hackers prétendent.

WebGoat

Instructions d'installation :

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

1. Exécution avec Docker

Si vous avez déjà un navigateur et ZAP et/ou Burp installés sur votre machine, vous pouvez dans ce cas exécuter directement l'image WebGoat 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 avez besoin que le conteneur s'exécute 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 ou localhost, mais vous pouvez utiliser des entrées d'hôte personnalisées. Par exemple :

127.0.0.1 www.webgoat.local www.webwolf.local

Vous pouvez ensuite 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

Rendez-vous ensuite sur http://www.webgoat.local:8080/WebGoat/ et http://www.webwolf.local:9090/WebWolf/

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

Au lieu d'installer des outils localement, nous disposons d'une image Docker complète basée sur l'exécution d'un bureau dans votre navigateur. Ainsi, vous n'avez 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 port différent

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

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

Dans le JAR combiné, --server.port est un alias de --webgoat.port. Utilisez --webwolf.port pour définir le port de WebWolf séparément.

Pour les paramètres disponibles, consultez les propriétés WebGoat et les propriétés WebWolf.

4. Exécution depuis les sources

Prérequis :

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

Ouvrez un shell/invite de commandes :

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

... vous devriez avoir WebGoat en cours d'exécution sur http://localhost:8080/WebGoat d'ici un instant.

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écution avec un menu personnalisé

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

Par exemple, en exécutant 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 docker run, 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