WEB APPLICATION PENTESTING CHECKLIST
Broken Access Control
- Test for IDOR (Insecure Direct Object References)
- Example: Access another user’s data by changing the user ID in the URL from
/user/123
to/user/124
.
- Test for missing function level access control
- Example: Attempt to access admin functionalities as a regular user by navigating to
/admin
.
- Check for bypassing access control by modifying parameters
- Example: Change user roles by modifying hidden form fields or API requests.
Cryptographic Failures
- Test for weak encryption algorithms
- Example: Identify the use of outdated encryption algorithms like MD5 or SHA1 for hashing passwords.
- Check for proper implementation of SSL/TLS
- Example: Use SSL/TLS scanning tools to check for weak ciphers and SSL/TLS misconfigurations.
- Test for data exposure in transit
- Example: Ensure sensitive data is transmitted over HTTPS and not HTTP by intercepting traffic with tools like Burp Suite.
Injection
- Test for SQL injection
- Example: Inject SQL commands through input fields and URLs, e.g., using
' OR '1'='1
.
- Test for command injection
- Example: Try to execute system commands through input fields, e.g., using
; ls -la
.
- Test for LDAP injection
- Example: Inject LDAP commands through input fields, e.g., using
*)(userPassword=*)
.
Insecure Design
- Check for lack of input validation
- Example: Submit invalid or unexpected input data to see how the application handles it.
- Test for insecure authentication mechanisms
- Example: Attempt to bypass authentication using weak password policies or brute force attacks.
- Review application logic for security flaws
- Example: Analyze how the application handles critical functions like password resets and multi-factor authentication.
Security Misconfiguration
- Test for default accounts and passwords
- Example: Attempt to log in using default credentials like
admin/admin
.
- Check for unnecessary services enabled
- Example: Identify and attempt to exploit unnecessary services running on the server.
- Review security headers
- Example: Ensure headers like
X-Content-Type-Options
,X-Frame-Options
, andContent-Security-Policy
are properly set.
Vulnerable and Outdated Components
- Identify outdated software versions
- Example: Use tools like Nmap or Nessus to identify outdated versions of software and libraries.
- Check for known vulnerabilities
- Example: Cross-reference identified software versions with known vulnerabilities in databases like the NVD.
- Review application dependencies
- Example: Use tools like OWASP Dependency-Check to identify vulnerabilities in application libraries.
Identification and Authentication Failures
- Test for weak password policies
- Example: Attempt to create an account with weak passwords like
password123
.
- Check for session fixation
- Example: Try to hijack a session by setting the session identifier through a URL parameter or cookie.
- Review multi-factor authentication implementation
- Example: Test the effectiveness of multi-factor authentication by attempting to bypass it.
Software and Data Integrity Failures
- Test for code and configuration integrity
- Example: Check if software and configurations are protected against unauthorized modifications.
- Check for untrusted deserialization
- Example: Attempt to manipulate serialized objects to exploit insecure deserialization.
- Review CI/CD pipeline security
- Example: Ensure the CI/CD pipeline includes security checks and only allows trusted sources.
Security Logging and Monitoring Failures
- Check for adequate logging
- **Example
:** Ensure that security-relevant events, such as login attempts and access control failures, are logged properly.
- Test log integrity
- Example: Attempt to modify or delete log entries to see if the application can detect and prevent such actions.
- Review monitoring and alerting systems
- Example: Ensure there are mechanisms in place to alert administrators of suspicious activities or potential breaches.
Server-Side Request Forgery (SSRF)
- Test for SSRF vulnerabilities
- Example: Use payloads to request internal resources, e.g.,
http://localhost/admin
orhttp://169.254.169.254/latest/meta-data/
.
- Check for unrestricted URL access
- Example: Attempt to fetch URLs from an input field to see if the application validates and restricts URL access.
- Review input validation for external requests
- Example: Ensure that any user input used in server-side requests is properly validated and sanitized.
Note: Blog based on publicly available information.