Web applications are common targets for attackers due to the critical data they handle and their accessibility over the internet. This project will guide you through a web application security assessment, focusing on identifying common vulnerabilities. You will use various tools to scan, analyze, and secure your web applications.
- Basic understanding of web application concepts (HTTP, HTTPS, HTML, etc.)
- Familiarity with the Linux command line
- A computer with a Linux operating system (preferably Ubuntu)
- Internet connection to download necessary tools
- Lab Environment: A virtual machine or a physical server hosting a web application.
- Tools:
- OWASP ZAP (Zed Attack Proxy)
- Burp Suite
- Nikto
- SQLMap
- Wapiti
Objective: Use OWASP ZAP to intercept and analyze HTTP/HTTPS traffic.
Steps:
-
Install OWASP ZAP:
sudo apt-get update sudo apt-get install zaproxy
-
Configure Browser to Use ZAP Proxy:
- Open OWASP ZAP.
- Set the browser proxy settings to use ZAP (default is
127.0.0.1:8080).
-
Intercept and Analyze Traffic:
- Navigate to the web application using the configured browser.
- Observe and analyze the intercepted requests and responses in ZAP.
Expected Output:
- Detailed view of HTTP/HTTPS traffic between the browser and the web application.
Objective: Use Burp Suite to scan the web application for vulnerabilities.
Steps:
-
Install Burp Suite:
sudo apt-get install burpsuite
-
Configure Browser to Use Burp Proxy:
- Open Burp Suite.
- Set the browser proxy settings to use Burp (default is
127.0.0.1:8080).
-
Run a Vulnerability Scan:
- Navigate to the "Scanner" tab in Burp Suite.
- Add the web application URL to the scan queue.
- Start the scan and review the results.
Expected Output:
- Report detailing identified vulnerabilities and their severity.
Objective: Assess the web server for common vulnerabilities using Nikto.
Steps:
-
Install Nikto:
sudo apt-get install nikto
-
Scan the Web Server:
nikto -h http://192.168.1.10
- Replace
192.168.1.10with the IP address of the target web server.
- Replace
Expected Output:
- Report detailing potential vulnerabilities, misconfigurations, and other issues with the web server.
Objective: Use SQLMap to test the web application for SQL injection vulnerabilities.
Steps:
-
Install SQLMap:
sudo apt-get install sqlmap
-
Identify a Vulnerable Parameter:
- Use the web application and identify a parameter that could be vulnerable to SQL injection (e.g.,
http://192.168.1.10/index.php?id=1).
- Use the web application and identify a parameter that could be vulnerable to SQL injection (e.g.,
-
Test for SQL Injection:
sqlmap -u "http://192.168.1.10/index.php?id=1" --batch --dbs
Expected Output:
- Identification of SQL injection vulnerabilities and the ability to list databases.
Objective: Use Wapiti to fuzz the web application and identify potential vulnerabilities.
Steps:
-
Install Wapiti:
sudo apt-get install wapiti
-
Run a Fuzzing Scan:
wapiti http://192.168.1.10 -f txt -o wapiti_report.txt
- Replace
http://192.168.1.10with the URL of the web application.
- Replace
Expected Output:
- Report detailing potential vulnerabilities found through fuzzing.
By completing these exercises, you have learned how to identify and assess common web application vulnerabilities using various tools. These skills are essential for securing web applications and protecting sensitive data from cyber threats.