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
- Docker
docker pull webgoat/goatandwolf
docker 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/bodgeit
docker 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:local
docker run -p 8080:8080 easybuggy:local
Browse 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 VulnerableApp
docker-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
- Docker
- Security Shepherd
- Docker
git clone https://github.com/OWASP/SecurityShepherd.git
cd SecurityShepherd
sudo gpasswd -a $USER docker
mvn -Pdocker clean install -DskipTests
docker-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
- Docker
- Vulnerable Java Web application
- Docker
git clone https://github.com/CSPF-Founder/JavaVulnerableLab.git
cd JavaVulnerableLab
sudo 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
- 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.git
cd juice-shop
npm install
npm 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
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
- 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=yes
docker-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=3306
npm install
npm 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
- Host in local machine
- Node Goat
- Docker
git clone https://github.com/OWASP/NodeGoat.git
cd NodeGoat
docker-compose build
docker-compose up
Browse http://localhost:4000/
- Host in local machine
git clone https://github.com/OWASP/NodeGoat.git
cd NodeGoat
npm install
- Browse “http://localhost”
- Docker
- Snyk’s Goof
- Docker compose
git clone ‣
cd nodejs-goof
docker-compose up --build
docker-compose down
- Browse http://localhost:3001/
- Docker
git clone https://github.com/snyk-labs/nodejs-goof.git
cd nodejs-goof
docker run --rm -p 27017:27017 mongo:3
- Docker compose
- Vulnerable Node
- Docker
git clone https://github.com/cr0hn/vulnerable-node.git vulnerable-node
cd 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.git
cd ./vuln-nodejs-app
docker-compose up --build -d
docker-compose up -d
- Browse http://localhost:9000/
- Manual
git clone https://github.com/payatu/vuln-nodejs-app.git
cd ./vuln-nodejs-app
Create Database
$
mysql -u <mysql_user> -p
mysql>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 install
npm run build
node server.js
Browse http://localhost:9000/
- Docker
PHP Vulnerable Applications #
- Mutillidae
- Dockerhub images
git clone https://github.com/webpwnized/mutillidae-dockerhub.git
cd 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-docker
docker-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 Downloads
chmod +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
- Dockerhub images
- bWAPP
- XMAPP
- Download and Install XMAPP https://www.apachefriends.org/download.html
cd Downloads
chmod +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
- 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
- XMAPP
- DVWA
- XAMPP Linux
- Download and Install XAMPP https://www.apachefriends.org/download.html
cd Downloads
chmod +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
- Local machine
git clone https://github.com/digininja/DVWA.git
mv DVWA /var/www/html
service apache2 start
Might be required to use ‘sudo’- Now browse localhost/DVWA in Web browser
- Shows error
cd /var/www/html
cd DVWA
cp config/config.inc.php.dist config/config.inc.php
service 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 DVWA
docker compose up -d
- Now browse http://localhost:4280
- 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
- UWAMP
- Conviso Vulnerable Web Application [CVWA]
- Docker
git clone https://github.com/convisolabs/CVWA
cd CVWA
docker 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 diwa
composer install
cd app
php -S 127.0.0.1:80 -t .
- Browse
http://localhost
- Docker
git clone ‣
cd diwa
docker 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.git
cd SSRF_Vulnerable_Lab
docker 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.git
cd UnSAFE_Bank/Backend
docker-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/VulnLab
cd Vulnlab
docker 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
- 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/
- Docker
Python Vulnerable Applications #
- Damn Small Vulnerable Web [DSVW]
- Run in Host machine
git clone https://github.com/stamparm/DSVW.git
cd DSVW
pip install -r requirements.txt
python3 dsvw.py
- Browse
http://localhost:65412
- Run in Host machine
- Damn Vulnerable Python Web App [DVPWA]
- Docker
git clone https://github.com/anxolerd/dvpwa.git
cd dvpwa
pip install -r requirements.txt
docker-compose up -d
- Browse
http://localhost:8080/
- Docker
- Pygoat
- Docker
docker pull pygoat/pygoat:latest
docker run --rm -p 8000:8000 pygoat/pygoat:latest
- Browse
http://127.0.0.1:8000/
- Docker Compose
git clone https://github.com/adeyosemanputra/pygoat.git
cd pygoat
docker-compose up -d
- Browse
http://127.0.0.1:8000/
- Docker Image
git clone https://github.com/adeyosemanputra/pygoat.git
cd pygoat
docker 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.git
cd pygoat
pip install -r requirements.txt
python3 [manage.py](http://manage.py/) migrate
python3 [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.git
cd VulnerableSAMLApp
docker-compose up
- Browse
http://127.0.0.1:8000/
- Docker