OWASP WebGoat Guide: Docker Install, Linux, Windows, Login and Walkthrough
OWASP WebGoat Docker Install for Linux and Windows
OWASP WebGoat and WebWolf quick start

OWASP WebGoat Docker Install: Ubuntu, RHEL, Windows, Login and WebWolf

Run the current official WebGoat container in minutes, open both browser services, create your learner account, and keep reusable start, stop, log, and reset commands in one place.

OWASP WebGoat is an interactive lesson platform that explains a vulnerability, lets you complete a controlled exercise, and then shows the defensive idea. This page gives a direct Docker launch for WebGoat and WebWolf, the correct browser paths, account setup, and reusable commands for later sessions.

What is OWASP WebGoat?

WebGoat is a deliberately insecure Java application maintained by OWASP. Instead of presenting an empty vulnerable website, it organizes security topics as guided lessons. A lesson explains the weakness, gives you an exercise, and finishes with mitigation guidance.

WebWolf runs beside WebGoat and supports lessons that need email, file, or callback-style interactions. Modern WebGoat normally asks you to create a local learner account rather than using one shared default login.

Download, install, run and test OWASP WebGoat and WebWolf

WebGoat is an OWASP teaching application with guided lessons; WebWolf is its companion service. No project folder is required for the fastest path because the official Docker image is the complete download.

Use only a local, isolated training machine. The commands bind the lab to your computer wherever the project supports a localhost binding. Do not publish these applications to the Internet.
WebGoathttp://127.0.0.1:8080/WebGoat/
WebWolfhttp://127.0.0.1:9090/WebWolf/

Ubuntu: complete Bash installation

Open a Bash terminal and paste the full block. It installs every required package, downloads the current project or image, starts the lab, tests the web service, and prints the browser address.

Ubuntu — copy all commandsBash; run from a normal user account
Copy the whole block into the named terminal.

RHEL, Rocky Linux or AlmaLinux: complete Bash installation

Open Bash and paste the full block. These commands use and the Docker RHEL repository.

RHEL-family Linux — copy all commandsBash; RHEL 8/9, Rocky Linux or AlmaLinux
Copy the whole block into the named terminal.

Windows 10 or 11: complete cmd.exe installation

Open Command Prompt as Administrator. The first block installs Docker Desktop. If Windows requests a restart, restart, reopen , and paste the same block again.

Windows — copy all commandscmd.exe, not PowerShell
Copy the whole block into the named terminal.

Podman and source-download alternatives

Run the official image with PodmanLinux Bash
Copy the whole block into the named terminal.
Download the complete WebGoat source ZIPThis is optional; the official container above is faster
Copy the whole block into the named terminal.

pip: WebGoat is Java-based; pip is not part of its installation.

WebGoat and WebWolf local training services

A sensible first WebGoat walkthrough

Create one local learner account and start with the introductory lessons. WebGoat tracks progress inside that account, so keeping one account makes it easier to return later. Read the lesson goal before opening browser developer tools or a proxy; understanding the expected application behavior makes the security flaw easier to recognize.

When you reach an assignment that uses email, a hosted file, or a callback, open WebWolf in a second tab. Use the same account where requested. For SQL injection and access-control lessons, focus on how data crosses trust boundaries and how the server decides what the user may read or change.

Keep the lab on your own computer or an isolated training network. These applications are intentionally insecure and should never be published on an Internet-facing server.

Troubleshooting that actually helps

ProblemWhat to checkFix
WebGoat page is still loadingStartup timeWait another 20–40 seconds and run .
WebWolf is unavailablePort 9090 mappingConfirm the run command contains .
JWT-related lesson behaves strangelyContainer timezoneRecreate the container with or your real timezone.
Registration data should be clearedExisting container stateRemove and recreate the container with the reset command.
Web application vulnerability training workflow

How Ammune helps with production risks represented by WebGoat

WebGoat covers many web and API-adjacent weaknesses, including SQL injection, access-control failures, JWT mistakes, SSRF, XXE, insecure deserialization, and client-side issues. Ammune connects these lesson concepts to observed production API traffic.

Runtime API visibility

Build an inventory from observed traffic and show which endpoints, methods, parameters, and response fields are actually in use.

Request and response context

Inspect both sides of an API transaction so analysts can see the input, returned data, status, identity context, and related behavior.

Operational response

Turn suspicious API activity into risk-ranked, SIEM-ready evidence that can support monitoring, investigation, and carefully controlled enforcement.

Training weaknessProduction API riskHow Ammune can help
Broken access controlA caller changes an object ID or function path and reaches data or actions outside its role.Analyze user-to-object and user-to-endpoint behavior to surface BOLA, IDOR, and function-level authorization anomalies.
JWT and authentication mistakesWeak token validation or unusual token reuse enables unauthorized API calls.Correlate token, identity, endpoint, and session behavior and highlight unusual authentication or replay patterns.
Injection and parser abuseJSON, XML, query, or header input reaches a vulnerable parser or backend.Inspect payloads and content types, identify suspicious structures, and retain request/response evidence for triage.
Sensitive responsesAn endpoint returns credentials, personal data, or excessive object properties.Inspect response bodies for sensitive data and expose endpoints that return more information than expected.

Related Ammune guidance: JWT API security best practices BOLA and IDOR API security API sensitive data exposure OWASP Juice Shop Docker installation and login guide

A training lab demonstrates a weakness in isolation. Ammune is designed for production API environments, where protection depends on real traffic context, API behavior, identity, sensitive response data, and a safe deployment policy. No single control replaces secure coding, authorization design, egress controls, or incident response.

Verified project sources

The tutorial above is complete; these links are included for release history, project ownership, and future verification—not because you need to leave this page to finish the installation.

Frequently asked questions

Why does WebGoat include WebWolf?

WebWolf supports lessons that need a second service, such as receiving messages, files or callbacks in a controlled training workflow.

Does WebGoat use one shared default account?

Current versions normally ask each learner to create a local account so lesson progress remains separate.

Are WebGoat lessons only about Java?

No. The application is Java-based, but the lessons teach web-security concepts that apply across languages and frameworks.

What is the best order for a beginner?

Complete the introductory HTTP and authentication material first, then move to injection, access control, session and client-side lessons.

Why should WebGoat remain local?

It is deliberately insecure, so exposing it could give other people an unsafe target on your machine or network.

How does Ammune relate to WebGoat lessons?

Ammune can inspect real API request and response behavior, surface unusual access and data exposure, and provide context for SOC investigation.

Apply the lessons from OWASP WebGoat to real API traffic

Ammune helps security, DevSecOps, and SOC teams discover APIs, inspect requests and responses, identify abuse and data exposure, and turn runtime evidence into practical investigation or enforcement workflows.

© 2026 Ammune Security. Run deliberately vulnerable applications only in isolated, authorized training environments.