Web application #
This Cheat sheet focus on Installing different Vulnerable Web applications that build with different technology stacks like Java, Nodejs, PHP and Python [Contains 30+ Vulnerable Applications]
Easier for peoples to download and install in different ways through Docker, Vagrant, VM, Manual, and Host in local machine.
Java Vulnerable Applications #
- Web Goat
- Host in local machine
- download jar file: https://github.com/WebGoat/WebGoat/releases/download/v2023.4/webgoat-2023.4.jar
java -jar webgoat<branchname>- Browse
localhost:8080/WebGoat - Register & start practicing
- download jar file: https://github.com/WebGoat/WebGoat/releases/download/v2023.4/webgoat-2023.4.jar
- Docker
docker pull webgoat/goatandwolfdocker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/webgoat- Browse
http://127.0.0.1:8080/WebGoat - As long as we don’t remove the container we can use:
docker start webgoat
- Host in local machine
- Bodgelt Store
- Docker
docker pull psiinon/bodgeitdocker run --rm -p 8080:8080 -i -t psiinon/bodgeit- Browse
http://127.0.0.1:8080/bodgeit - As long as we don’t remove the container we can use:
docker start bodgeit
- Docker
- EasyBuggy
- Docker
- Download easybuggy locally
docker build . -t easybuggy:localdocker run -p 8080:8080 easybuggy:localBrowse http://127.0.0.1:8080- To stop
https://127.0.0.1:8080/exit
- Docker
- Marathon
- Docker
- Download locally
docker build -f Dockerfile-local -t marathon:latest .- If any issues, run
npm audit docker run --rm --name marathon-8080 -p 127.0.0.1:8080:8080 --cpu-shares="256" --memory-reservation="512m" --memory="1g" marathon:latest- Browse [
http://localhost:8080/marathon](http://localhost:8080/marathon) - Access the page
http://localhost:8080/marathon/showMarathons.page - Create account and start hacking
- Docker
- OWASP Vulnerable App
- Docker
- Clone the repo
git clone https://github.com/SasanLabs/VulnerableApp.git cd VulnerableAppdocker-compose pull && docker-compose up- Browse
http://localhost
- Clone the repo
- Host in local machine
- Download Jar file https://github.com/SasanLabs/VulnerableApp/releases/download/1.11.0/VulnerableApp-1.11.0.jar
- Navigate to the project directory
java -jar VulnerableApp-*- Browse
http://localhost:9090/VulnerableApp
- Download Jar file https://github.com/SasanLabs/VulnerableApp/releases/download/1.11.0/VulnerableApp-1.11.0.jar
- Docker
- Security Shepherd
- Docker
git clone https://github.com/OWASP/SecurityShepherd.gitcd SecurityShepherdsudo gpasswd -a $USER dockermvn -Pdocker clean install -DskipTestsdocker-compose up- Browse http://localhost [admin:password]
- Virtual Box
- Download file - https://github.com/OWASP/SecurityShepherd/releases/download/v3.1/owaspSecurityShepherd_v3.1_VM.zip
- Import the file in VM
- Start the machine
- Login with default credentials included in the VM Download .txt file {(user: securityshepherd pass: shepherd3.1)}
- Check your IP address with
ifconfig - Browse
http://<yourip> - Start hacking
- Download file - https://github.com/OWASP/SecurityShepherd/releases/download/v3.1/owaspSecurityShepherd_v3.1_VM.zip
- Docker
- Vulnerable Java Web application
- Docker
git clone https://github.com/CSPF-Founder/JavaVulnerableLab.gitcd JavaVulnerableLabsudo docker-compose up- Browse [
http://localhost:8080/JavaVulnerableLab/install.jsp](http://localhost:8080/JavaVulnerableLab/install.jsp) - Click on the Install button
- Virtual Box
- Download file - https://sourceforge.net/projects/javavulnerablelab/files/v0.1/JavaVulnerableLab.ova/download
- Import the JavaVulnerable.ova into VirtualBox
- Change the Network Settings to Host-Only Network
- Start the Machine and Log into the Machine( Credentials→ Username: root, Password: cspf)
- Start Tomcat by entering “
service tomcat start” in the Terminal - Start MySQL by entering “
service mysql start” in the Terminal - Find the IP Address of Machine -
ifconfig - In your Browser, go to “
http://[IP_ADDRESS_OF_VM]:8080/JavaVulnerableLab/install.jsp - Click the Install Button
- Download file - https://sourceforge.net/projects/javavulnerablelab/files/v0.1/JavaVulnerableLab.ova/download
- Host in local machine
- Download Jar file
http://sourceforge.net/projects/javavulnerablelab/files/v0.2/JavaVulnerableLab.jar/download - Navigate to the project directory
- Run
java -jar JavaVulnerableLab.jar - Browse
http://localhost:8080/JavaVulnerableLab/install.jsp
- Download Jar file
- Docker
Nodejs Vulnerable Applications #
- Juice shop
Host it in local Machine
- Install node.js
apt install npm git clone https://github.com/juice-shop/juice-shop.gitcd juice-shopnpm installnpm start- Browse to http://localhost:3000
- Install node.js
Docker
- Install Docker
- https://docs.docker.com/desktop/install/debian/
- Run
docker pull bkimminich/juice-shop - Run
docker run --rm -p 3000:3000 bkimminich/juice-shop - Browse to http://localhost:3000
- Install Docker
Vagrant
- Install Vagrant
and Virtualbox
- Run
git clone https://github.com/juice-shop/juice-shop.git - Run
cd vagrant && vagrant up - Browse to 192.168.56.110
- Install Vagrant
- Damn Vulnerable Nodejs Application
Docker
docker run --name dvna -p 9090:9090 -d appsecco/dvna:sqlite- Browse http://127.0.0.1:9090/
Docker Hub
git clone https://github.com/appsecco/dvna; cd dvna- Create one ‘vars.env’ file with this cred
MYSQL_USER=dvna MYSQL_DATABASE=dvna MYSQL_PASSWORD=passw0rd MYSQL_RANDOM_ROOT_PASSWORD=yesdocker-compose up- Browse [
http://127.0.0.1:9090/](http://127.0.0.1:9090/)
Manual Step
git clone https://github.com/appsecco/dvna; cd dvna- Configure the environment variables with your database information
export MYSQL_USER=dvna export MYSQL_DATABASE=dvna export MYSQL_PASSWORD=passw0rd export MYSQL_HOST=127.0.0.1 export MYSQL_PORT=3306npm installnpm start- Access the application at http://localhost:9090
- Extreme Vulnerable Node Application
- Host in local machine
- Download the zip file - https://github.com/vegabird/xvna/blob/master/xvna.zip
- Start MongoDB
- Create DB xvna in MongoDB
- Import the Collection to MongoDB given from folder collection
- Start the xvna from root folder using command:
node index.js - Hit “http://localhost:3000/app”
- Login Credential: Email-> [email protected]
, Password -> password
- Download the zip file - https://github.com/vegabird/xvna/blob/master/xvna.zip
- Host in local machine
- Node Goat
- Docker
git clone https://github.com/OWASP/NodeGoat.gitcd NodeGoatdocker-compose builddocker-compose upBrowse http://localhost:4000/
- Host in local machine
git clone https://github.com/OWASP/NodeGoat.gitcd NodeGoatnpm install- Browse “http://localhost”
- Docker
- Snyk’s Goof
- Docker compose
git clone ‣cd nodejs-goofdocker-compose up --builddocker-compose down- Browse http://localhost:3001/
- Docker
git clone https://github.com/snyk-labs/nodejs-goof.gitcd nodejs-goofdocker run --rm -p 27017:27017 mongo:3
- Docker compose
- Vulnerable Node
- Docker
git clone https://github.com/cr0hn/vulnerable-node.git vulnerable-nodecd vulnerable-node/docker-compose build && docker-compose up- Browse localhost:3000
- Start hacking
- Docker
- Payatu Vulnerable Nodejs Application
- Docker
git clone https://github.com/payatu/vuln-nodejs-app.gitcd ./vuln-nodejs-appdocker-compose up --build -ddocker-compose up -d- Browse http://localhost:9000/
- Manual
git clone https://github.com/payatu/vuln-nodejs-app.gitcd ./vuln-nodejs-appCreate Database
$
mysql -u <mysql_user> -pmysql>create database vuln_nodejs_app;Update your MySQL and MongoDB database username and password inside .env file.
DB_PORT=3306 DB_NAME=vuln_nodejs_app DB_USER=vuln_nodejs_user DB_PASS=passw0rd HOST_PORT=9000 JWT_SECRET=secret MONGODB_SERVER=localhost MONGODB_ADMINUSERNAME= MONGODB_ADMINPASSWORD=npm installnpm run buildnode server.jsBrowse http://localhost:9000/
- Docker
PHP Vulnerable Applications #
- Mutillidae
- Dockerhub images
git clone https://github.com/webpwnized/mutillidae-dockerhub.gitcd mutilldae-dockerhub- Installation → https://docs.docker.com/compose/install/
docker-compose up- Now browse “http://127.0.0.1“
- Click on ‘Reset DB’ button
- Port 80, 8080: Mutillidae HTTP web interface
- Port 81: MySQL Admin HTTP web interface
- Port 82: LDAP Admin web interface
- Port 443: HTTPS web interface
- Port 389: LDAP interface
- Click on ‘Reset DB’ button
- Import ldap file in web application at port 82 (https://github.com/webpwnized/mutilidae/blob/master/configuration/openldap/mutilidae.ldif
)
- Docker
git clone [https://github.com/webpwnized/mutillidae-docker.git](https://github.com/webpwnized/mutillidae-dockerhub.git)cd mutilldae-dockerdocker-compose up- Now browse 127.0.0.1
- Port 80, 8080: Mutillidae HTTP web interface
- Port 81: MySQL Admin HTTP web interface
- Port 82: LDAP Admin web interface
- Port 443: HTTPS web interface
- Port 389: LDAP interface
- XAMPP
- Download and Install XAMPP https://www.apachefriends.org/download.html
cd Downloadschmod +x xampp-linux-x64-8.2.4-0-installer.run./xampp-linux-x64-8.2.4-0-installer.run- Take note that XAMPP is installed on /opt/lampp
- Now download Mutillidae (https://github.com/webpwnized/mutillidae
)
- Copy the entire Mutillidae directory to /opt/lampp/htdocs
cp -r mutillidae /opt/lampp/htdocs - Change directory to /opt/lampp
cd /opt/lampp - Start the XAMPP
sudo ./xampp start - Now browse http://[Kalilinx IP Address]/mutillidae
- Download and Install XAMPP https://www.apachefriends.org/download.html
- Dockerhub images
- bWAPP
- XMAPP
- Download and Install XMAPP https://www.apachefriends.org/download.html
cd Downloadschmod +x xampp-linux-x64-8.2.4-0-installer.run./xampp-linux-x64-8.2.4-0-installer.run- Take note that XAMPP is installed on /opt/lampp
- Now download bWAPP
cp -r bWAPP /opt/lampp/htdocs- start the xmapp
sudo ./xampp start - Now browse http://[Kalilinx IP Address]/mutillidae
- Download and Install XMAPP https://www.apachefriends.org/download.html
- Virtual box
- Download the bWAPP https://sourceforge.net/projects/bwapp/files/bee-box/
- Extract the zip file
- Open Virtualbox. Add new machine.
- Select the machine folder (to store VM files) and input name for the new machine. Choose Type → Linux, 64-bit
- Next and choose Use an existing hard disk and choose the folder for download BeeBox file.
- Now choose bwapp.vmdk in Hard disk selector
- Start and Run
- Download the bWAPP https://sourceforge.net/projects/bwapp/files/bee-box/
- XMAPP
- DVWA
- XAMPP Linux
- Download and Install XAMPP https://www.apachefriends.org/download.html
cd Downloadschmod +x xampp-linux-x64-8.2.4-0-installer.run./xampp-linux-x64-8.2.4-0-installer.run- Take note that XAMPP is installed on /opt/lampp
- Now download DVWA (https://github.com/digininja/DVWA
)
- Copy the complete DVWA directory to /opt/lampp/htdocs →
cp -r dvwa /opt/lampp/htdocs - Change the directory to /opt/lampp
- Start the XAMPP
sudo ./xampp start - Now browse http://[Kalilinx IP Address]/dvwa
- Download and Install XAMPP https://www.apachefriends.org/download.html
- Local machine
git clone https://github.com/digininja/DVWA.gitmv DVWA /var/www/htmlservice apache2 startMight be required to use ‘sudo’- Now browse localhost/DVWA
in Web browser
- Shows error
cd /var/www/htmlcd DVWAcp config/config.inc.php.dist config/config.inc.phpservice mariadb start- Type sql and click enter →
sql - Enter the queries in the database
mysql> create database dvwa;create user dvwa@localhost identified by 'p@ssw0rd';grant all on dvwa.* to dvwa@localhost;mysql> flush privileges;
- Now the login page will be visible and access localhost/DVWA/login.php
- Docker
- Download DVWA https://github.com/digininja/DVWA#download
- Extract the file
cd DVWAdocker compose up -d- Now browse http://localhost:4280
- Download DVWA https://github.com/digininja/DVWA#download
- XAMPP Linux
- WackoPicko
- Docker
docker run -p 127.0.0.1:8080:80 -it adamdoupe/wackopicko- Browse
localhost:8080
- Docker
- Bricks
- UWAMP
- Download UWAMP - https://www.uwamp.com/file/UwAmp.rar
- Download Bricks - https://sechow.com/bricks/download.html
- Unzip both
- Move the bricks folder to ‘uwamp’
- Open uwamp and start & click phpmyadmin
- Create new database named Bricks
- Now access the “http://localhost/bricks”
- Start hacking
- Follow link : https://www.youtube.com/watch?v=hcKAKu5FIhM
- Download UWAMP - https://www.uwamp.com/file/UwAmp.rar
- UWAMP
- Conviso Vulnerable Web Application [CVWA]
- Docker
git clone https://github.com/convisolabs/CVWAcd CVWAdocker build -t cvwa .docker container run -ti -p 8080:80 cvwa- Browse http://localhost:8080/site/index.php
- Docker
- Deliberately Insecure Web Application [DIWA]
- Host in local machine
git clone ‣cd diwacomposer installcd appphp -S 127.0.0.1:80 -t .- Browse
http://localhost
- Docker
git clone ‣cd diwadocker build -t diwa .docker run -p 8080:80 -d diwa:latest- Browse
http://localhost:8080/
- Host in local machine
- OSTE
- Host in local machine
git clone https://github.com/OSTEsayed/OSTE-Vulnerable-Web-Application.git- Copy the entire directory to /opt/lampp/htdocs
cp -r OSTE-Vulnerable-Web-Application /opt/lampp/htdocs - Change the directory
cd /opt/lampp - Start the XAMPP
sudo ./xampp start - Now browse
http://<Kali IP Address>/OSTE-Vulnerable-Web-Application
- Host in local machine
- SSRF Vulnerable App
- Docker
git clone https://github.com/incredibleindishell/SSRF_Vulnerable_Lab.gitcd SSRF_Vulnerable_Labdocker build .docker run -p 9000:80- Browse
http://localhost:9000
- Docker
- Unsafe Bank
- Host in local machine
git clone https://github.com/lucideus-repo/UnSAFE_Bank.gitcd UnSAFE_Bank/Backenddocker-compose up -d- Browse (http://localhost:3000)`
- Host in local machine
- VulnLab
- Docker
docker run --name vulnlab -d -p 1337:80 yavuzlar/vulnlab:latest- Browse [
http://localhost:1337/](http://localhost:1337/)
- Manual
git clone https://github.com/Yavuzlar/VulnLabcd Vulnlabdocker build -t yavuzlar/vulnlab .docker run -d -p 1337:80 yavuzlar/vulnlab- Browse [
http://localhost:1337/](http://localhost:1337/)
- Docker
- Xtreme Vulnerable Web Application [XVWA]
- Docker
sudo docker run --name xvwa -d -p 80:80 tuxotron/xvwa- Browse
http://localhost/xvwa
- Automatic installation Scripts
- Run this bash script in root folder - https://github.com/s4n7h0/Script-Bucket/blob/master/Bash/xvwa-setup.sh
- Browse
http://localhost/xvwa
- Run this bash script in root folder - https://github.com/s4n7h0/Script-Bucket/blob/master/Bash/xvwa-setup.sh
- Manual
- Clone the repo https://github.com/s4n7h0/xvwa
- Move it to your webserver path
- Database configuration -
xvwa/config.php - Browse
http://localhost/xvwa/ - Reset or setup -
http://localhost/xvwa/setup/
- Clone the repo https://github.com/s4n7h0/xvwa
- Docker
Python Vulnerable Applications #
- Damn Small Vulnerable Web [DSVW]
- Run in Host machine
git clone https://github.com/stamparm/DSVW.gitcd DSVWpip install -r requirements.txtpython3 dsvw.py- Browse
http://localhost:65412
- Run in Host machine
- Damn Vulnerable Python Web App [DVPWA]
- Docker
git clone https://github.com/anxolerd/dvpwa.gitcd dvpwapip install -r requirements.txtdocker-compose up -d- Browse
http://localhost:8080/
- Docker
- Pygoat
- Docker
docker pull pygoat/pygoat:latestdocker run --rm -p 8000:8000 pygoat/pygoat:latest- Browse
http://127.0.0.1:8000/
- Docker Compose
git clone https://github.com/adeyosemanputra/pygoat.gitcd pygoatdocker-compose up -d- Browse
http://127.0.0.1:8000/
- Docker Image
git clone https://github.com/adeyosemanputra/pygoat.gitcd pygoatdocker build -f Dockerfile -t pygoat .docker run --rm -p 8000:8000 pygoat:latest- Browse
http://127.0.0.1:8000/
- Manual
git clone https://github.com/adeyosemanputra/pygoat.gitcd pygoatpip install -r requirements.txtpython3 [manage.py](http://manage.py/) migratepython3 [manage.py](http://manage.py/) runserver- Browse
http://127.0.0.1:8000/
- Docker
- Vulnerable SAML App
- Docker
git clone https://github.com/yogisec/VulnerableSAMLApp.gitcd VulnerableSAMLAppdocker-compose up- Browse
http://127.0.0.1:8000/
- Docker