Mutillidae
What is Mutillidae
Mutillidae is a free, open source web application provided to allow security enthusiest to pen-test and hack
a web application. Mutillidae can be installed on Linux, Windows XP, and Windows 7
using XAMMP making it easy for users who do not want to install or administrate their own webserver.
It is already installed on Samurai WTF. Simply replace existing version with latest on Samurai.
Mutillidae contains dozens of vulnerabilities and hints to help the user exploit them;
providing an easy-to-use web hacking environment deliberately designed to be used as a hack-lab
for security enthusiast, classroom labs, and vulnerability assessment tool targets. Mutillidae has
been used in graduate security courses, in corporate web sec training courses, and as an
"assess the assessor" target for vulnerability software.
Mutillidae has been tested/attacked with Cenzic Hailstorm ARC, W3AF, SQLMAP,
Samurai WTF, Backtrack, HP Web Inspect, Burp-Suite, NetSparker Community Edition, and other tools. If you
would like to practice pen-testing/hacking a web application by exploiting cross-site scripting, sql injection,
response-splitting, html injection, javascript injection, clickjacking, cross frame scripting,
forms-caching, authentication bypass, or many other vulnerabilities, then Mutillidae is for you.
Latest Version (Scroll to bottom for previous versions)
Documentation
Usage Instructions
Mutillidae contains all of the vulnerabilties from the
OWASP Top 10.
Go to the OWASP Top 10 page to read about a vulnerability, then choose it from
the list on the left to try it out. Hints may help.
Mutillidae currently has two modes: secure and insecure (default). In insecure mode, the
project works like Mutillidae 1.0. Pages are vulnerable to at least the topic they
fall under in the menu. Most pages are vulnerable to much more. In secure mode,
Mutillidae attempts to protect the pages with server side scripts. Also, hints are disabled in
secure mode. In the interest of making as many challenges as possible, this can be defeated.
In Mutillidae 2.0, the code has been commented to allow the user to see how the defense works.
To get the most out of the project, avoid reading the source code until after learning how
to exploit it. But if you get stuck, the comments should help. Learning how the attack
works should help to understand the defense.
PHP "Strict" Errors
Get rid of PHP "strict" errors. They are not compatible with the OWASP ESAPI classes in use in Mutillidae 2.0. The
error modifies headers disrupting functionality so this is not simply an annoyance issue.
To do this, go to the PHP.INI file and change the line that reads "error_reporting = E_ALL | E_STRICT" to
"error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECIATED". Once the modification is complete,
restart the Apache service. If you are not sure how to restart the service, reboot.
Important note: If you use XAMPP Lite or various version of XAMPP on various operating systems, the path for your
php.ini file may vary. You may even have multiple php.ini files in which case try to modify the one in the Apache
directory first, then the one in the PHP file if that doesnt do the trick.
Windows possible default location C:\xampp\php\php.ini, C:\XamppLite\PHP\php.ini, others
Linux possible default locations: /XamppLite/PHP/php.ini, /XamppLite/apache/bin/php.ini, others
Notes
- Created by Irongeek.com.
- If you would like to learn about other deliberately vulnerable web
applications, check out
Deliberately Insecure Web Applications For Learning Web App Security.
- If you would like to help in writing the hints sections, please
email. Your name
and a link to your site will be added to the credits page.
-
Do NOT run this code on a production network. Either run it on a
private network, or restrict your web server software to only use the local
loopback address. By default Mutillidae only allows access from localhost
(127.*.*.*). Edit the .htaccess file to change this behavior (not recommended on a public network).
If for some reason .htaccess is not parsed you can
restrict the IP by finding the "Listen" line in the http.conf file and changing
it to read: Listen 127.0.0.1:80
Previous Versions