Web Application Pentest Checklist
A structured penetration testing checklist for web applications covering all critical attack surfaces. This checklist guides testers through reconnaissance, vulnerability discovery, exploitation, and reporting phases aligned with OWASP and PTES methodologies.
subfinder -d target.com -silentamass enum -passive -d target.comcurl -s "https://crt.sh/?q=%25.target.com&output=json" | jq -r ".[].name_value" | sort -ugobuster dir -u https://target.com -w /usr/share/wordlists/dirb/common.txt -t 50ffuf -u https://target.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -mc 200,204,301,302,403feroxbuster -u https://target.com -w /usr/share/seclists/Discovery/Web-Content/common.txtwhatweb -a 3 https://target.comcurl -sI https://target.comcurl -s https://target.com/robots.txtcurl -s https://target.com/sitemap.xmlcurl -s https://target.com/.well-known/security.txtkatana -u https://target.com -jc -d 5gau target.com | grep -E "\.js$"sqlmap -u "https://target.com/page?id=1" --batch --risk=3 --level=5sqlmap -r request.txt --batch --dbssqlmap output confirming the vulnerable parameter, DBMS version, and a screenshot of extracted database contents (or a benign proof such as `SELECT @@version`).
screenshot of the affected URL with the rendered XSS payload (e.g. an alert() box) and the raw HTTP request/response showing reflected input.
hydra -L users.txt -P passwords.txt https-post-form "/login:username=^USER^&password=^PASS^:F=invalid"paired Burp requests from two different user accounts showing User A successfully reading or modifying User B's resource (with redacted PII as appropriate).
raw response showing internal-only content (e.g. AWS metadata at 169.254.169.254 or an internal admin page) returned through the vulnerable parameter.
side-by-side request/response pairs from a low-privilege account showing successful access to admin functionality, plus the resulting state change.
uploaded webshell URL plus screenshot/HTTP response demonstrating command execution (e.g. `id` output) on the application server.
curl -sI https://target.comtestssl.sh --headers https://target.com