OWASP Mutillidae II Guide: Docker Install, Linux, Windows and Walkthrough
OWASP Mutillidae II Docker Install Guide
OWASP Mutillidae II quick start

OWASP Mutillidae II Docker Install: Ubuntu, RHEL, Windows and Setup

Launch the official multi-container Mutillidae environment, add the local hostname, initialize the database, and keep exact operating commands for Ubuntu, RHEL, and Windows.

OWASP Mutillidae II is a deliberately vulnerable training website with built-in hints, security levels, and dozens of lessons. This page gives the current five-container Docker setup, creates the local hostname, initializes the database, and keeps the recurring start, log, stop, and reset commands in one place.

What is OWASP Mutillidae II?

Mutillidae II is an OWASP deliberately vulnerable web application for guided and free-form practice. It includes common web weaknesses, built-in hints, adjustable security levels, and a secure mode that helps learners compare vulnerable and defensive behavior.

The current Docker project builds five local containers for the website, database, database administration, LDAP, and LDAP administration. The first browser visit normally shows a database warning; using the rebuild link or the setup command below initializes the lab.

Download, install, run and test OWASP Mutillidae II

Mutillidae II is a deliberately vulnerable web application with built-in hints, multiple security levels, database and LDAP services, and many web and API-style lessons. The commands below download the maintained Docker project and build all five containers.

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.
Main applicationhttp://127.0.0.1/ or http://127.0.0.1:8080/
One-time database setuphttp://127.0.0.1/set-up-database.php

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.

wget and Podman alternatives

Download the Docker project with wgetLinux Bash
Copy the whole block into the named terminal.
Optional Podman Compose pathLinux Bash; rootful mode is used because the stack binds privileged ports
Copy the whole block into the named terminal.

pip: Mutillidae is PHP-based and does not require pip.

Mutillidae Docker services and browser access

How to use Mutillidae without wandering around

Start with the application menu and choose one vulnerability family. Read the built-in hints before trying random input. Mutillidae is especially useful when you compare the same page across security levels: the vulnerable behavior, partial defenses, and secure behavior are often easier to understand side by side.

Use the database reset whenever a lesson becomes inconsistent. For classroom use, reset between groups so every learner starts from the same state. Keep the LDAP and database administration pages limited to the local machine.

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
mutillidae.localhost does not resolveHosts file entryAdd to the local hosts file and reopen the browser.
Database warning remainsDatabase initializationSelect the rebuild link, wait for success, and refresh the home page.
Build fails on one serviceDetailed Compose logsRun .
Port 80 is already usedExisting web serverStop the existing service or review the Compose port mappings before starting.
Mutillidae request manipulation training environment

How Ammune helps with production risks represented by Mutillidae II

Mutillidae exposes many classic weaknesses through forms, URLs, cookies, files, and server-side features. In production, comparable risks often appear in REST endpoints and data-rich API responses.

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
Injection and command executionUntrusted API input reaches SQL, LDAP, XML, or operating-system functions.Inspect request structures and parameter values, identify suspicious payload patterns, and preserve endpoint and response context for investigation.
Authentication and authorization flawsA caller reaches another user’s data or a restricted function.Analyze identities, roles, endpoints, object IDs, and behavior to expose authorization anomalies.
Unsafe uploads and content typesAn API accepts a file or body type that does not match the expected operation.Surface unexpected content types, methods, file-related endpoints, schema changes, and abnormal response behavior.
Data leakageError messages or API responses reveal sensitive implementation or customer data.Inspect response bodies for PII, PCI, tokens, secrets, stack details, and excessive object properties.

Related Ammune guidance: API sensitive data exposure API authorization vs authentication API schema drift detection 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

What makes Mutillidae different from a single-challenge lab?

It combines many weaknesses, hints, security levels, database services and web-service examples in one application.

What are Mutillidae security levels?

They let learners compare deliberately weak behavior with progressively stronger protections inside the same feature.

Why does Mutillidae have a database rebuild option?

It restores the training data and schema after exercises change or damage the application state.

Does Mutillidae include API-style content?

Yes. Its REST and SOAP areas help demonstrate how web-service inputs, authorization and responses can fail.

What should a learner compare between insecure and secure modes?

Compare validation, authorization, error handling, output encoding and how much sensitive information appears in responses.

How does Ammune connect to these lessons?

Ammune focuses on real production API traffic, including discovered endpoints, abnormal behavior, response leakage and SIEM-ready evidence.

Apply the lessons from OWASP Mutillidae II 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.