ComputerSecurityStudent (CSS) [Login] [Join Now]

|SECURITY TOOLS >> Damn Vulnerable Web App >> DVWA v1.0.7 >> Current Page |Views: 157767

(Damn Vulnerable Web App (DVWA): Lesson 2)

{ Command Execution Basic Testing }

Section 0. Background Information
  • What is Damn Vulnerable Web App (DVWA)?
    • Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is damn vulnerable.
    • Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, help web developers better understand the processes of securing web applications and aid teachers/students to teach/learn web application security in a class room environment.

  • What is Command Execution?
    • Command Execution is where a website application provides the ability to execute system commands.

  • What is a Command Injection Attack?
    • The purpose of the command injection attack is to inject and execute commands specified by the attacker in the vulnerable application.
    • In situations like this, the application, which executes unwanted system commands, is like a pseudo system shell, and the attacker may use it
      as an authorized system user.
    • Note, the commands are executed with the same privileges as the application and/or web server.
    • Command injection attacks are possible in most cases because of lack of correct input data validation, which can be manipulated by the attacker (forms, cookies, HTTP headers etc.).

  • What is Command Injection Harvesting?
    • Command Injection Harvesting is where a malicious user manipulates a website command execution application to render sensitive data.  (E.g., usernames, config files, directory and file listings, etc).
      • Unix/Linux Example:; cat /etc/passwd
      • Windows Example: && dir

  • Pre-Requisite Lab
  • Lab Notes
    • In this lab we will do the following:
      1. We will test Command Execution where Security is set to low
      2. We will demonstrate how other linux/unix commands can be appended to an IP Address for execution.
      3. We will explorer the code that allows for malicious use.
  • Legal Disclaimer
    • As a condition of your use of this Web site, you warrant to that you will not use this Web site for any purpose that is unlawful or that is prohibited by these terms, conditions, and notices.
    • In accordance with UCC § 2-316, this product is provided with "no warranties, either express or implied." The information contained is provided "as-is", with "no guarantee of merchantability."
    • In addition, this is a teaching website that does not condone malicious behavior of any kind.
    • You are on notice, that continuing and/or using this lab outside your "own" test environment is considered malicious and is against the law.
    • © 2012 No content replication of any kind is allowed without express written permission.


Section 1: Configure Fedora14 Virtual Machine Settings
  1. Open Your VMware Player
    • Instructions:
      1. On Your Host Computer, Go To
      2. Start --> All Program --> VMWare --> VMWare Player


  2. Edit Fedora 14 Virtual Machine Settings
    • Instructions:
      1. Highlight fedora14
      2. Click Edit virtual machine settings


  3. Edit Network Adapter
    • Instructions:
      1. Highlight Network Adapter
      2. Select Bridged
      3. Click on the OK Button.


Section 2: Login to Fedora14
  1. Start Fedora14 VM Instance
    • Instructions:
      1. Start Up VMWare Player
      2. Select Fedora14
      3. Play virtual machine


  2. Login to Fedora14
    • Instructions:
      1. Login: student
      2. Password: <whatever you set it to>.



Section 3: Open Console Terminal and Retrieve IP Address
  1. Start a Terminal Console
    • Instructions:
      1. Applications --> Terminal


  2. Switch user to root
    • Instructions:
      1. su - root
      2. <Whatever you set the root password to>


  3. Get IP Address
    • Instructions:
      1. ifconfig -a
    • Notes:
      • As indicated below, my IP address is
      • Please record your IP address.


Section 4: Start Up Damn Vulnerable Web App (DVWA)
  1. Start up a Web Browser  
    • Instructions:
      1. Applications --> Internet --> Firefox
    • Notes:
      • You can open up a Web browser on any Operating System on your network.
      • Working with DVWA does not have to be done on your Fedora machine, the only requirement to play with DVWA is a follow
        1. The Fedora Server is on the Network.
        2. httpd is running
        3. mysqld is running


  2. DVWA Database setup  
    • Instructions:
        • Replace with the IP Address obtained from Section 3, Step 3.
      2. Username: admin
      3. Password: password
        • "password" is the default password for user admin.


  3. Set Website Security Level (Part 1) 
    • Instructions:
      1. Click on DVWA Security


  4. Set Website Security Level (Part 2) 
    • Instructions:
      1. Select Low
      2. Click Submit



Section 5: Command Execution
  1. Command Execution  
    • Instructions:
      1. Click on Command Execution


  2. Execute Ping  
    • Notes:
      • Below we are going to do a simply ping test using the web interface.
      • As an example, ping something on your network.
      • Use the IP Address obtained in Section 3, Step 3 if you have nothing else to ping.
    • Instructions:
      2. Click Submit


  3. cat /etc/password (Attempt 1)  
    • Instructions:
      1. cat /etc/passwd
      2. Click Submit
    • Notes:
      • Notice that either a messaging saying illegal IP address was displayed or nothing was returned.


  4. cat /etc/password (Attempt 2)  
    • Instructions:
      1.; cat /etc/passwd
      2. Click Submit
    • Notes:
      • Notice that we are now able to see the contents of the /etc/passwd file.


  5. Looking at the weakness  
    • Instructions:
      1. Bring up a terminal window (See Section 3, Step 1, if you don't know how)
      2. cat /var/www/html/dvwa/vulnerabilities/exec/source/low.php
    • Notes:
      1. Notice the two shell_exec lines.
      2. These are the lines that execute ping depending on which Operating System is being used.
      3. In Unix/Linux command, you can run multiple command separated by a ";".
      4. Notice the code does not check that if $target matches an IP Address
        • \d+.\d+.\d+.\d+, where "\d+" represents a number with the possibility of multiple digits, like
      5. The code allows for an attacker to append commands behind the IP Address.
        1.; cat /etc/passwd


  6. Copy the /etc/passwd file to /tmp
    • Instructions:
      1.; cat /etc/passwd | tee /tmp/passwd
    • Note:
      • Here we are not only displaying the contents of /etc/passwd on the webpage, but also we are copying the /etc/passwd file to the /tmp directory.


Section 6: Proof of Lab
  1. Proof of Lab
    • Instructions:
      1. Bring up a terminal windows
      2. cd /tmp
      3. ls -l passwd
      4. date
      5. echo "Your Name"
        • Replace the string "Your Name" with your actual name.
        • e.g., echo "John Gray"
    • Proof of Lab Instructions:
      1. Do a <PrtScn>
      2. Paste into a word document
      3. Upload to Moodle


Help ComputerSecurityStudent
pay for continued research,
resources & bandwidth