Category:OWASP WebGoat Project

Revision as of 10:16, 5 August 2008 by D0ubl3 h3lix (talk | contribs) (Movie Solutions)

Jump to: navigation, search


OWASP Books logo.png This project has produced a book that can be downloaded or purchased.
Feel free to browse the full catalog of available OWASP books.
Detailed solution hints
WebGoat in action

WebGoat is a deliberately insecure J2EE web application maintained by OWASP designed to teach web application security lessons. In each lesson, users must demonstrate their understanding of a security issue by exploiting a real vulnerability in the WebGoat application. For example, in one of the lessons the user must use SQL injection to steal fake credit card numbers. The application is a realistic teaching environment, providing users with hints and code to further explain the lesson.

Why the name "WebGoat"? Developers should not feel bad about not knowing security. Even the best programmers make security errors. What they need is a scapegoat, right? Just blame it on the 'Goat!

To get started, read the WebGoat User and Install Guide


Web application security is difficult to learn and practice. Not many people have full blown web applications like online book stores or online banks that can be used to scan for vulnerabilities. In addition, security professionals frequently need to test tools against a platform known to be vulnerable to ensure that they perform as advertised. All of this needs to happen in a safe and legal environment. Even if your intentions are good, we believe you should never attempt to find vulnerabilities without permission.

The primary goal of the WebGoat project is simple: create a de-facto interactive teaching environment for web application security. In the future, the project team hopes to extend WebGoat into becoming a security benchmarking platform and a Java-based Web site Honeypot.

Check out the project roadmap and find some tasks that you can help with right away.


Performing session hijacking

WebGoat is written in Java and therefore installs on any platform with a Java virtual machine. There are installation programs for Linux, OS X Tiger and Windows. Once deployed, the user can go through the lessons and track their progress with the scorecard. There are currently over 30 lessons, including those dealing with the following issues:

For more details, please see the WebGoat User and Install Guide.

Movie Solutions

Aung Khant (YGN Ethical Hacker Group) has created a series of movies showing possible solutions to the WebGoat lessons. These training movies can be viewed at


You can synch to the current WebGoat source tree at Google code.

The WebGoat distributions are now available at Google code downloads.

You can download older versions of WebGoat from the OWASP Source Code Center at Sourceforge. There are versions with and without Java, and installation only requires unzipping the download and running a start script. For convenience, a ready-to-deploy WAR file is also made available to drop right into your J2EE application server.

WebGoat 5.2 Standard:

The standard release is a download, unzip, and click-to-run release. It comes with the Java Runtime Environment and a configured Tomcat 5.5 server.

   * Double-click on webgoat.bat - a Tomcat command window starts
   * Browse to http://localhost/WebGoat/attack

WebGoat 5.2 Developer (At SourceForge):

Note: This release is intended to provide an environment for working on the WebGoat labs. If you would like to develop lessons, synch to the baseline at Google code.

The developer release includes the standard release with the addition of a configured eclipse environment. The developer release is also a download, unzip, and click-to-run release. It works exactly the same as the standard release if you only wish to explore the lessons. However, if you want to perform the labs or use WebGoat in the classroom, use the eclipse.bat to start up a preconfigured WebGoat environment. Detailed instructions are include at the top of the _HOW TO create the WebGoat workspace.txt_ file.

   * Extract the file to the working directory
   * Double-click the eclipse.bat file
   * In the Eclipse package explorer (top right), right click the WebGoat project and refresh
   * In the Eclipse package explorer (top right), right click the Servers project and refresh
   * In the Eclipse servers view (bottom), right click LocalHost server and start
   * Browse to http://localhost/WebGoat/attack
   * Any changes made to the source will automatically compile and redeploy when saved

Please send all comments to Bruce Mayhew at webgoat AT regarding this release.

Future Development

WebGoat 5.2 - Is now available via svn at google code

WebGoat 5.3 - Estimated release date: TBD

If you would like to become a member of the WebGoat source code project hosted at Google Code contact Bruce Mayhew at webgoat AT

New Features in 5.2

  • Introduction and WebGoat instructions
  • Multi Level Login Lesson
  • Session Fixation Lesson
  • Insecure Login Lesson
  • Lesson Solution Videos
  • Bug Report Feature
  • Many upgrades and minor fixes

Project Contributors

The WebGoat project is run by Bruce Mayhew. He can be contacted at webgoat AT WebGoat distributions are currently maintained on SourceForge and Google. The WebGoat framework makes it extremely easy to add additional lessons. We are actively seeking developers to add new lessons as new web technologies emerge. If you are interested in volunteering for the project, or have a comment, question, or suggestion, please join the WebGoat mailing list.

Thanks to Ounce Labs for allowing me time to work on and run the WebGoat project during my day job!

Project Sponsors

The WebGoat project is sponsored by 100px-Aspect_Security_Logo.jpg