WebGoat is a full J2EE web application designed to teach web application
security lessons. In each lesson, users must demonstrate their
understanding by exploiting a real vulnerability on the local system.
[...] The WebGoat project goals are simply to create the de-facto
interactive teaching environment for web security.
From the author web site:
"WebMaven (better known as Buggy Bank) is an interactive learning
environment for web application security. It emulates various security
flaws for the user to find. This will enable users to safely & legally
practice web application vulnerability assessment techniques. In
addition, users can benchmark their security audit tools to ensure they
perform as advertised. "