Web Application Testing Checklist
🔍 Reconnaissance
Information Gathering
- Identify technology stack (Wappalyzer, WhatWeb)
- Enumerate subdomains (Subfinder, Amass, crt.sh)
- Directory bruteforcing (Gobuster, Feroxbuster)
- Check robots.txt, sitemap.xml
- Identify WAF (wafw00f)
- Review JavaScript files for endpoints
- Check for exposed .git, .svn, .env files
- Analyze HTTP headers (security headers)
Application Mapping
- Map all entry points (forms, APIs, file uploads)
- Identify user roles and permissions
- Document authentication mechanisms
- List all API endpoints
- Identify sensitive functionality
🔐 Authentication Testing
Login Mechanism
- Test for username enumeration
- Check password policy strength
- Test account lockout mechanism
- Brute force protection assessment
- Test "Remember Me" functionality
- Check for default credentials
- Test password reset flow
Session Management
- Analyze session token entropy
- Test session fixation
- Check session timeout
- Test concurrent session handling
- Verify secure cookie flags (HttpOnly, Secure, SameSite)
- Test logout functionality
- CSRF token validation
Multi-Factor Authentication
- Test MFA bypass techniques
- Check for MFA code reuse
- Test rate limiting on MFA
- Verify MFA enforcement consistency
🔓 Authorization Testing
Access Control
- Test horizontal privilege escalation
- Test vertical privilege escalation
- IDOR vulnerability testing
- Test direct object references
- Check API endpoint authorization
- Test parameter manipulation
- Verify role-based access controls
Business Logic
- Test payment bypass
- Check quantity manipulation
- Test discount/coupon abuse
- Verify workflow sequence
- Test race conditions
- Check for negative values
💉 Injection Testing
SQL Injection
- Test all input parameters
- Error-based SQLi
- Union-based SQLi
- Blind SQLi (Boolean, Time-based)
- Out-of-band SQLi
- Second-order SQLi
- Test stored procedures
Cross-Site Scripting (XSS)
- Reflected XSS
- Stored XSS
- DOM-based XSS
- Test different contexts (HTML, JS, attribute)
- Filter bypass techniques
- Check CSP implementation
Other Injections
- Command injection (OS)
- LDAP injection
- XML/XXE injection
- Template injection (SSTI)
- Header injection (CRLF)
- Path traversal
📤 File Upload Testing
- Test file type restrictions
- Check file extension validation
- Test MIME type validation
- Upload malicious files (webshell)
- Test filename manipulation
- Check upload size limits
- Test for path traversal in filename
- Verify file content validation
🌐 API Security
REST API
- Test authentication mechanisms
- Check rate limiting
- Test mass assignment
- Verify input validation
- Check for sensitive data exposure
- Test HTTP methods (PUT, DELETE, PATCH)
- Check for API versioning issues
GraphQL
- Test introspection query
- Check for batching attacks
- Test query depth limits
- Verify field-level authorization
- Test for injection in queries
🔒 Cryptography
- Check TLS/SSL configuration (testssl.sh)
- Verify certificate validity
- Test for weak ciphers
- Check password storage (hashing)
- Verify encryption at rest
- Test JWT implementation
- Check for hardcoded secrets
📊 Reporting Severity Guide
| Severity | CVSS Score | Example |
|---|---|---|
| Critical | 9.0 - 10.0 | RCE, SQLi with admin access |
| High | 7.0 - 8.9 | Privilege escalation, Auth bypass |
| Medium | 4.0 - 6.9 | Stored XSS, CSRF |
| Low | 0.1 - 3.9 | Information disclosure |
| Info | 0.0 | Best practice recommendations |
🛠️ Tools Reference
# Reconnaissance
subfinder -d target.com -o subs.txt
httpx -l subs.txt -o live.txt
nuclei -l live.txt -t cves/
Web scanning
nikto -h https://target.com
sqlmap -u "https://target.com/page?id=1" --batch
ffuf -u https://target.com/FUZZ -w wordlist.txt
Proxy
burpsuite / mitmproxy / OWASP ZAP
Last updated: 2024