mutillidae is a free, open source threat detection & response project written in PHP and released under GPL-3.0. It has 1,531 GitHub stars, 569 forks and 1 open issues, and was last pushed 29 days ago. On this registry it ranks #56 of 70 tracked projects in Threat Detection & Response, with 5 head-to-head comparisons available.

What is mutillidae?

OWASP Mutillidae II is a free, open-source, deliberately vulnerable PHP web application that gives security learners, instructors, and tool testers a ready target for practising web hacking against the OWASP Top Ten.

What it is

OWASP Mutillidae II is a deliberately vulnerable web application written in PHP, released under GPL-3.0, and maintained as an OWASP project. It contains over 40 vulnerabilities and challenges covering each entry of the OWASP Top Ten from 2007 through 2017, and it is built to be genuinely exploitable rather than a hardened application dressed up to look weak. The README states this directly: Mutillidae is actually vulnerable, so users do not have to enter a "magic" statement to make a flaw appear.

The problem it solves is the shortage of a safe, resettable place to practise. It lives in the PHP ecosystem and installs on the standard AMP stacks — Linux and Windows setups including XAMPP, WAMP, and LAMP — and it replaces the simulated exercise in which a learner types a special phrase to trigger a vulnerability that is not really there. Because the application is real and the flaws are real, the same environment can serve a classroom exercise, a capture-the-flag round, and a scanner's assessment target.

Key capabilities

  • Ships with over 40 vulnerabilities and challenges, organised to cover each OWASP Top Ten category from 2007 to 2017.
  • Provides a "Setup" button for one-click restoration of the system to default settings, so a lab can be reset between sessions.
  • Lets users switch between secure and insecure modes to compare the protected and unprotected behaviour of the same page.
  • Installs on existing XAMPP, WAMP, and LAMP stacks, or runs from Docker images published on DockerHub.
  • Keeps its code under the src directory, split into areas including ajax, classes, data with XML data sources, includes, javascript, and labs.
  • Is distributed preinstalled on Rapid7 Metasploitable 2, Samurai Web Testing Framework (WTF), and OWASP Broken Web Apps, and can be updated on those platforms.

Who uses it and how

  • It is used in graduate security courses, where the secure/insecure switch and the Setup reset let an instructor demonstrate a flaw and then return the environment to a known state.
  • It is used in corporate web security training as a hands-on environment for staff learning application security.
  • It serves as a lab environment for security enthusiasts and as a target for capture-the-flag exercises.
  • It is used as an assessment target for vulnerability assessment software, giving scanners a known-vulnerable subject to measure against.
  • Learners running Metasploitable 2, Samurai WTF, or OWASP Broken Web Apps already have it, because it is preinstalled on each of those distributions.

Getting started

The standard installation runs Mutillidae from DockerHub images, with a separate guide for running it on Google Kubernetes Engine and a legacy path for an existing LAMP stack documented in README-INSTALLATION.md. The source now lives in the src project directory, and the README warns that older instructions must be adjusted accordingly.

How it compares

It overlaps with Rapid7 Metasploitable 2, Samurai Web Testing Framework, and OWASP Broken Web Apps, but where those are whole distributions, Mutillidae is a single application that can be layered onto an existing XAMPP, WAMP, or LAMP stack, run from DockerHub, or used as the component already bundled inside those distributions. It is free and GPL-3.0 licensed, so it can be redistributed and run in a classroom without a licence fee, and the vulnerable content stays on infrastructure the operator controls.

When to use it — and when not

A self-hoster has to operate a PHP application on a LAMP, WAMP, or XAMPP stack or run the Docker images, and must keep a deliberately vulnerable application isolated from untrusted networks, since the flaws are the point rather than an oversight. It is not the right choice for anyone seeking a production web application, a codebase to harden, or a tool that stands in for a real scanner. Its documentation is partly delivered as video tutorials on YouTube and announcements on X rather than as text, and the directory listing in the README breaks off partway through the labs entry, so some setup details are easier to follow from the videos than from the repository.

project readme (upstream, from github) — read inline

OWASP Mutillidae II

OWASP Mutillidae II is a free, open-source, deliberately vulnerable web application designed for web-security enthusiasts. It serves as a target for learning and practicing web security skills. Mutillidae can be easily installed on Linux and Windows systems using LAMP, WAMP, and XAMMP stacks. Additionally, it comes pre-installed on SamuraiWTF and OWASP BWA, and the existing version can be updated on these platforms. With dozens of vulnerabilities and hints to guide the user, Mutillidae provides an accessible web hacking environment suitable for labs, security enthusiasts, classrooms, CTFs, and vulnerability assessment tool targets. It has been widely used in graduate security courses, corporate web security training, and as an assessment target for vulnerability assessment software. OWASP Mutillidae II provides a comprehensive platform for learning and practicing web security techniques in a controlled environment.

Project Announcements

Stay updated with project announcements on X: webpwnized

Tutorials

Explore our tutorials on YouTube: webpwnized YouTube channel

Installation Guides

Location of source code

Note carefully that the source code has moved to the src project directory. Be careful to adjust accordingly.

Standard Installation - DockerHub

Alternative Installation - Docker

Alternative Installation - Google Cloud

Legacy Installation - LAMP Stack

If you have a LAMP stack set up already, you can skip directly to installing Mutillidae. Check out our comprehensive installation guide for detailed instructions. Watch the video tutorial: How to Install Mutillidae on LAMP Stack

Usage

Explore a large number of video tutorials available on the webpwnized YouTube channel for guidance on using Mutillidae.

Key Features

  • Contains over 40 vulnerabilities and challenges, covering each of the OWASP Top Ten from 2007 to 2017
  • Mutillidae is actually vulnerable, eliminating the need for users to enter a "magic" statement
  • Easy installation on Linux or Windows *AMP stacks, including XAMPP, WAMP, and LAMP
  • Preinstalled on Rapid7 Metasploitable 2, Samurai Web Testing Framework (WTF), and OWASP Broken Web Apps (BWA)
  • One-click system restoration to default settings with the "Setup" button
  • Users can switch between secure and insecure modes
  • Widely used in graduate security courses, corporate web security training, and as an assessment target for vulnerability assessment software
  • Regularly updated to maintain relevance and effectiveness

Directory Structure

Below is the updated directory structure of the project along with brief descriptions:

Root Directory

  • CHANGELOG.md - Project change log.
  • CONTRIBUTING.md - Contribution guidelines.
  • LICENSE - Project license.
  • README-INSTALLATION.md - Installation instructions.
  • README.md - Main README file.
  • SECURITY.md - Security guidelines.

Source Directory: src

  • ajax - Contains files related to AJAX functionality.
  • classes - PHP class files for handling various tasks (e.g., logging, token management, database operations).
  • data - Data files, such as XML data sources.
  • documentation - Documentation files including installation guides and usage instructions.
  • images - All image assets used in the application (e.g., icons, gritter assets).
  • includes - Reusable PHP files (e.g., templates, configuration files).
  • javascript - JavaScript libraries, custom scripts, and initializers for front-end functionality.
  • labs - Files for security testing, offering challenges such as SQL injection, XSS, and file inclusions.
  • passwords - Password-related files (e.g., account data).
  • styles - CSS stylesheets defining the look and feel of the application.
  • webservices - Web services for REST and SOAP APIs.
    • includes - Reusable components for web services.
    • rest - REST API files and related documentation.
    • soap - SOAP service files, including libraries and documentation.
      • soap/lib - Library files specifically for SOAP service integration.

Additional Files and Directories

  • version - Contains versioning information for the project.

Frequently asked questions

Is mutillidae free to use?

mutillidae is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does mutillidae do?

OWASP Mutillidae II is a free, open-source, deliberately vulnerable web application providing a target for web-security training. This is an easy-to-use web hac

What is mutillidae written in?

mutillidae is primarily written in PHP. Its source is publicly available at https://github.com/webpwnized/mutillidae, and it has 1,531 GitHub stars.