## Web Application Penetration Testing Checklist
> **Note:** This checklist is for overall functionality testing of a web application and does not include detailed testing of all potential vulnerabilities. The primary focus is on major security issues and general functionality and only applicable items will be tested..
#### Authentication
- [ ] Test for default logins
- [ ] Verify user-accessible authentication history
- [ ] Test for authentication bypass
- [ ] Check bruteforce protection mechanisms
- [ ] Ensure password quality rules are enforced
- [ ] Validate "remember me" functionality
- [ ] Check if autocomplete is disabled on password forms/inputs
- [ ] Test password reset and/or recovery processes
- [ ] Verify password change process
- [ ] Test CAPTCHA implementation
- [ ] Check multi-factor authentication setup
- [ ] Confirm logout functionality presence
#### Session Management
- [ ] Verify session tokens for cookie flags (httpOnly and secure)
- [ ] Check session cookie scope (path and domain)
- [ ] Ensure session cookie duration (expires and max-age) is set correctly
- [ ] Confirm session termination after a maximum lifetime
- [ ] Validate session termination after logout
- [ ] Check if users can have multiple simultaneous sessions
- [ ] Confirm that new session tokens are issued on login, role change, and logout
#### CSRF and Clickjacking
- [ ] Test for Cross-Site Request Forgery (CSRF)
- [ ] Test for clickjacking vulnerabilities
#### Authorization
- [ ] Test for bypassing authorization schema
- [ ] Check for privilege access control problems
- [ ] Verify authorization is not missing
#### Injection Attacks
- [ ] Test for HTML Injection
- [ ] Test for Reflected Cross-Site Scripting (XSS)
- [ ] Test for DOM-based XSS
- [ ] Test for Stored XSS
- [ ] Test for SQL Injection
#### Fingerprinting Web Server
- [ ] Find the type of Web Server
- [ ] Find the version details of the Web Server
#### Review The Web Contents
- [ ] Inspect the page source for sensitive info
- [ ] Try to find Sensitive Javascript codes
- [ ] Try to find any keys
- [ ] Make sure the autocomplete is disabled
#### Testing HTTP Methods
- [ ] Discover the supported methods
- [ ] Ensure the PUT method is disabled
- [ ] Ensure the OPTIONS method is disabled
- [ ] Test access control bypass
#### File Handling
- [ ] Ensure file size limits, upload frequency, and total file counts are defined and enforced
### Post-Testing Report
At the end of testing, you will receive a comprehensive report detailing all vulnerabilities tested and identified in the web application. The report will include:
- **Bug Name:** The name of the identified vulnerability.
- **Location:** Where the bug was found in the application.
- **Severity:** The severity level of the bug.
- **Video POC:** Proof of Concept video demonstrating the vulnerability.
- **Mitigation Steps:** Recommendations on how to fix or mitigate the identified vulnerability.
This checklist aims to cover most major security issues and overall functionality without diving deeply into specific vulnerabilities.