As Web Applications are becoming popular these days, there comes a dire need to secure them. Although there are several Vulnerability Scanning Tools, however while developing these tools, developers need to test them. Moreover, they also need to know how well the Vulnerability Scanning tool is performing. As of now, there are little or no such vulnerable applications existing for testing such tools. There are Deliberately Vulnerable Applications existing in the market but they are not written with such an intent and hence lag extensibility, e.g. adding new vulnerabilities is quite difficult. Hence, developers resort to writing their own vulnerable applications, which usually causes productivity loss and the pain of reworking.
VulnerableApp is built keeping these factors in mind. This project is scalable, extensible, easier to integrate and easier to learn. As solving the above issue requires addition of various vulnerabilities, hence it becomes a very good platform to learn various security vulnerabilities.
There are multiple ways in which you can contribute to the project:
good first issue
which can be a good starter../gradlew GenerateSampleVulnerability
. It will generate the Sample Vulnerability template which has placeholders and comments. Modified files can be seen in the logs of the command or in the github history. You can navigate to those files, fill in the placeholders and then build the project to see the effect of the changes.There are 2 ways to run the project:
The simplest way to run the project is using Docker containers which will run the full-fleged VulnerableApplication with all the components. For running as Docker application, follow following steps:
docker-compose pull && docker-compose up
http://localhost
and this will give the User Interface for VulnerableApp.Note: The above steps will run the latest unreleased VulnerableApp version. If you want to run the latest released version, please use docker latest tag.
java -jar VulnerableApp-*
http://localhost:9090/VulnerableApp
. This will give the Legacy User Interface for the VulnerableApp.There are 2 ways in which this project can be built and used:
./gradlew jibDockerBuild
docker-compose up
http://localhost
and this will give the User Interface for VulnerableApp.http://localhost:9090/VulnerableApp
and this will give the Legacy User Interface for VulnerableApp which you can use to debug and test.For accessing database from browser, visit: http://localhost:9090/VulnerableApp/h2
Database Connection properties:
JDBC Url: jdbc:h2:mem:testdb
User Name: admin
Password: hacker
In case you are stuck with any of the steps or understanding anything related to project and its goals, feel free to shoot a mail at karan.sasan@owasp.org or raise an issue and we will try our best to help you.