Web App

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
  • Bodgelt Store
    • Docker
      1. docker pull psiinon/bodgeit
      2. docker run --rm -p 8080:8080 -i -t psiinon/bodgeit
      3. Browse http://127.0.0.1:8080/bodgeit
      4. As long as we don’t remove the container we can use: docker start bodgeit
  • EasyBuggy
    • Docker
      1. Download easybuggy locally
      2. docker build . -t easybuggy:local
      3. docker run -p 8080:8080 easybuggy:local
      4. Browse http://127.0.0.1:8080
      5. To stop https://127.0.0.1:8080/exit
  • Marathon
    • Docker
      1. Download locally
      2. docker build -f Dockerfile-local -t marathon:latest .
      3. If any issues, run npm audit
      4. docker run --rm --name marathon-8080 -p 127.0.0.1:8080:8080 --cpu-shares="256" --memory-reservation="512m" --memory="1g" marathon:latest
      5. Browse [http://localhost:8080/marathon](http://localhost:8080/marathon)
      6. Access the page http://localhost:8080/marathon/showMarathons.page
      7. Create account and start hacking
  • OWASP Vulnerable App
  • Security Shepherd
    • Docker
      1. git clone https://github.com/OWASP/SecurityShepherd.git
      2. cd SecurityShepherd
      3. sudo gpasswd -a $USER docker
      4. mvn -Pdocker clean install -DskipTests
      5. docker-compose up
      6. Browse http://localhost [admin:password]
    • Virtual Box
      1. Download file - https://github.com/OWASP/SecurityShepherd/releases/download/v3.1/owaspSecurityShepherd_v3.1_VM.zip
      2. Import the file in VM
      3. Start the machine
      4. Login with default credentials included in the VM Download .txt file {(user: securityshepherd pass: shepherd3.1)}
      5. Check your IP address with ifconfig
      6. Browse http://<yourip>
      7. Start hacking
  • Vulnerable Java Web application
    • Docker
      1. git clone https://github.com/CSPF-Founder/JavaVulnerableLab.git
      2. cd JavaVulnerableLab
      3. sudo docker-compose up
      4. Browse [http://localhost:8080/JavaVulnerableLab/install.jsp](http://localhost:8080/JavaVulnerableLab/install.jsp)
      5. Click on the Install button
    • Virtual Box
      1. Download file - https://sourceforge.net/projects/javavulnerablelab/files/v0.1/JavaVulnerableLab.ova/download
      2. Import the JavaVulnerable.ova into VirtualBox
      3. Change the Network Settings to Host-Only Network
      4. Start the Machine and Log into the Machine( Credentials→ Username: root, Password: cspf)
      5. Start Tomcat by entering “service tomcat start” in the Terminal
      6. Start MySQL by entering “service mysql start” in the Terminal
      7. Find the IP Address of Machine - ifconfig
      8. In your Browser, go to “http://[IP_ADDRESS_OF_VM]:8080/JavaVulnerableLab/install.jsp
      9. Click the Install Button
    • Host in local machine
      1. Download Jar file http://sourceforge.net/projects/javavulnerablelab/files/v0.2/JavaVulnerableLab.jar/download
      2. Navigate to the project directory
      3. Run java -jar JavaVulnerableLab.jar
      4. Browse http://localhost:8080/JavaVulnerableLab/install.jsp

Nodejs Vulnerable Applications #

  • Juice shop
  • Damn Vulnerable Nodejs Application
    • Docker

      1. docker run --name dvna -p 9090:9090 -d appsecco/dvna:sqlite
      2. Browse http://127.0.0.1:9090/
    • Docker Hub

      1. git clone https://github.com/appsecco/dvna; cd dvna
      2. Create one ‘vars.env’ file with this cred
      MYSQL_USER=dvna
      MYSQL_DATABASE=dvna
      MYSQL_PASSWORD=passw0rd
      MYSQL_RANDOM_ROOT_PASSWORD=yes
      
      1. docker-compose up
      2. Browse [http://127.0.0.1:9090/](http://127.0.0.1:9090/)
    • Manual Step

      1. git clone https://github.com/appsecco/dvna; cd dvna
      2. 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
      
      1. npm install
      2. npm start
      3. Access the application at http://localhost:9090
  • Extreme Vulnerable Node Application
    • Host in local machine
      1. Download the zip file - https://github.com/vegabird/xvna/blob/master/xvna.zip
      2. Start MongoDB
      3. Create DB xvna in MongoDB
      4. Import the Collection to MongoDB given from folder collection
      5. Start the xvna from root folder using command: node index.js
      6. Hit “http://localhost:3000/app”
      7. Login Credential: Email-> [email protected], Password -> password
  • Node Goat
    • Docker
      1. git clone https://github.com/OWASP/NodeGoat.git
      2. cd NodeGoat
      3. docker-compose build
      4. docker-compose up
      5. Browse http://localhost:4000/
    • Host in local machine
      1. git clone https://github.com/OWASP/NodeGoat.git
      2. cd NodeGoat
      3. npm install
      4. Browse “http://localhost”
  • Snyk’s Goof
    • Docker compose
      1. git clone ‣
      2. cd nodejs-goof
      3. docker-compose up --build
      4. docker-compose down
      5. Browse http://localhost:3001/
    • Docker
      1. git clone https://github.com/snyk-labs/nodejs-goof.git
      2. cd nodejs-goof
      3. docker run --rm -p 27017:27017 mongo:3
  • Vulnerable Node
    • Docker
      1. git clone https://github.com/cr0hn/vulnerable-node.git vulnerable-node
      2. cd vulnerable-node/
      3. docker-compose build && docker-compose up
      4. Browse localhost:3000
      5. Start hacking
  • Payatu Vulnerable Nodejs Application
    • Docker
      1. git clone https://github.com/payatu/vuln-nodejs-app.git
      2. cd ./vuln-nodejs-app
      3. docker-compose up --build -d
      4. docker-compose up -d
      5. Browse http://localhost:9000/
    • Manual
      1. git clone https://github.com/payatu/vuln-nodejs-app.git

      2. cd ./vuln-nodejs-app

      3. Create Database

        $ mysql -u <mysql_user> -p mysql> create database vuln_nodejs_app;

      4. 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=
        
      5. npm install

      6. npm run build

      7. node server.js

      8. Browse http://localhost:9000/

PHP Vulnerable Applications #

  • Mutillidae
    • Dockerhub images
      1. git clone https://github.com/webpwnized/mutillidae-dockerhub.git
      2. cd mutilldae-dockerhub
      3. Installation → https://docs.docker.com/compose/install/
      4. docker-compose up
      5. Now browse “http://127.0.0.1“
        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
      6. Import ldap file in web application at port 82 (https://github.com/webpwnized/mutilidae/blob/master/configuration/openldap/mutilidae.ldif)
    • Docker
      1. git clone [https://github.com/webpwnized/mutillidae-docker.git](https://github.com/webpwnized/mutillidae-dockerhub.git)
      2. cd mutilldae-docker
      3. docker-compose up
      4. 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
      1. Download and Install XAMPP https://www.apachefriends.org/download.html
      2. cd Downloads
      3. chmod +x xampp-linux-x64-8.2.4-0-installer.run
      4. ./xampp-linux-x64-8.2.4-0-installer.run
      5. Take note that XAMPP is installed on /opt/lampp
      6. Now download Mutillidae (https://github.com/webpwnized/mutillidae)
      7. Copy the entire Mutillidae directory to /opt/lampp/htdocs cp -r mutillidae /opt/lampp/htdocs
      8. Change directory to /opt/lampp cd /opt/lampp
      9. Start the XAMPP sudo ./xampp start
      10. Now browse http://[Kalilinx IP Address]/mutillidae
  • bWAPP
    • XMAPP
      1. Download and Install XMAPP https://www.apachefriends.org/download.html
      2. cd Downloads
      3. chmod +x xampp-linux-x64-8.2.4-0-installer.run
      4. ./xampp-linux-x64-8.2.4-0-installer.run
      5. Take note that XAMPP is installed on /opt/lampp
      6. Now download bWAPP
      7. cp -r bWAPP /opt/lampp/htdocs
      8. start the xmapp sudo ./xampp start
      9. Now browse http://[Kalilinx IP Address]/mutillidae
    • Virtual box
      1. Download the bWAPP https://sourceforge.net/projects/bwapp/files/bee-box/
      2. Extract the zip file
      3. Open Virtualbox. Add new machine.
      4. Select the machine folder (to store VM files) and input name for the new machine. Choose Type → Linux, 64-bit
      5. Next and choose Use an existing hard disk and choose the folder for download BeeBox file.
      6. Now choose bwapp.vmdk in Hard disk selector
      7. Start and Run
  • DVWA
    • XAMPP Linux
      1. Download and Install XAMPP https://www.apachefriends.org/download.html
      2. cd Downloads
      3. chmod +x xampp-linux-x64-8.2.4-0-installer.run
      4. ./xampp-linux-x64-8.2.4-0-installer.run
      5. Take note that XAMPP is installed on /opt/lampp
      6. Now download DVWA (https://github.com/digininja/DVWA)
      7. Copy the complete DVWA directory to /opt/lampp/htdocs → cp -r dvwa /opt/lampp/htdocs
      8. Change the directory to /opt/lampp
      9. Start the XAMPP sudo ./xampp start
      10. Now browse http://[Kalilinx IP Address]/dvwa
    • Local machine
      1. git clone https://github.com/digininja/DVWA.git
      2. mv DVWA /var/www/html
      3. service apache2 start Might be required to use ‘sudo’
      4. Now browse localhost/DVWA in Web browser
      5. Shows error
      6. cd /var/www/html
      7. cd DVWA
      8. cp config/config.inc.php.dist config/config.inc.php
      9. service mariadb start
      10. Type sql and click enter → sql
      11. 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;
      1. Now the login page will be visible and access localhost/DVWA/login.php
    • Docker
      1. Download DVWA https://github.com/digininja/DVWA#download
      2. Extract the file
      3. cd DVWA
      4. docker compose up -d
      5. Now browse http://localhost:4280
  • WackoPicko
    • Docker
      1. docker run -p 127.0.0.1:8080:80 -it adamdoupe/wackopicko
      2. Browse localhost:8080
  • Bricks
  • Conviso Vulnerable Web Application [CVWA]
    • Docker
      1. git clone https://github.com/convisolabs/CVWA
      2. cd CVWA
      3. docker build -t cvwa .
      4. docker container run -ti -p 8080:80 cvwa
      5. Browse http://localhost:8080/site/index.php
  • Deliberately Insecure Web Application [DIWA]
    • Host in local machine
      1. git clone ‣
      2. cd diwa
      3. composer install
      4. cd app
      5. php -S 127.0.0.1:80 -t .
      6. Browse http://localhost
    • Docker
      1. git clone ‣
      2. cd diwa
      3. docker build -t diwa .
      4. docker run -p 8080:80 -d diwa:latest
      5. Browse http://localhost:8080/
  • OSTE
    • Host in local machine
      1. git clone https://github.com/OSTEsayed/OSTE-Vulnerable-Web-Application.git
      2. Copy the entire directory to /opt/lampp/htdocs cp -r OSTE-Vulnerable-Web-Application /opt/lampp/htdocs
      3. Change the directory cd /opt/lampp
      4. Start the XAMPP sudo ./xampp start
      5. Now browse http://<Kali IP Address>/OSTE-Vulnerable-Web-Application
  • SSRF Vulnerable App
    • Docker
      1. git clone https://github.com/incredibleindishell/SSRF_Vulnerable_Lab.git
      2. cd SSRF_Vulnerable_Lab
      3. docker build .
      4. docker run -p 9000:80
      5. Browse http://localhost:9000
  • Unsafe Bank
    • Host in local machine
      1. git clone https://github.com/lucideus-repo/UnSAFE_Bank.git
      2. cd UnSAFE_Bank/Backend
      3. docker-compose up -d
      4. Browse (http://localhost:3000)`
  • VulnLab
    • Docker
      1. docker run --name vulnlab -d -p 1337:80 yavuzlar/vulnlab:latest
      2. Browse [http://localhost:1337/](http://localhost:1337/)
    • Manual
      1. git clone https://github.com/Yavuzlar/VulnLab
      2. cd Vulnlab
      3. docker build -t yavuzlar/vulnlab .
      4. docker run -d -p 1337:80 yavuzlar/vulnlab
      5. Browse [http://localhost:1337/](http://localhost:1337/)
  • Xtreme Vulnerable Web Application [XVWA]

Python Vulnerable Applications #

Direct Online Practice #

  1. Acunetix
  2. Altoro Mutual
  3. BGA Vulnerable BANK App
  4. Cyber Scavenger Hunt
  5. Defend the Web
  6. Gin & Juice Shop
  7. Gruyere
  8. HackThisSite
  9. HackXpert
  10. HackYourselfFirst
  11. Hacking Lab
  12. Netsparker Test App .NET
  13. Netsparker Test App PHP
  14. OWASP Juice Shop
  15. Security Tweets
  16. Zero Bank
  17. hackxor