WebGoat deliberately insecure web application

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

Overview

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:

  1. Cross-site Scripting (XSS)
  2. Access Control
  3. Thread Safety
  4. Hidden Form Field Manipulation
  5. Parameter Manipulation
  6. Weak Session Cookies
  7. Blind SQL Injection
  8. Numeric SQL Injection
  9. String SQL Injection
  10. Web Services
  11. Fail Open Authentication
  12. Dangers of HTML Comments… and many more!