Web Application Penetration Testing

4.1 Introduction and Objectives

4.2 Information Gathering

4.2.1 Testing Web Application Fingerprint

4.2.2 Application Discovery

4.2.3 Spidering and Googling

4.2.4 Analysis of Error Codes

4.2.5 Infrastructure Configuration Management Testing

4.2.5.1 SSL/TLS Testing

4.2.5.2 DB Listener Testing

4.2.6 Application Configuration Management Testing

4.2.6.1 Testing for File Extensions Handling

4.2.6.2 Old, backup and unreferenced files

4.3 Business logic testing

4.4 Authentication Testing

4.4.1 Testing for guessable (dictionary) user account

4.4.2 Brute Force Testing

4.4.3 Testing for bypassing authentication schema

4.4.4 Testing for directory traversal/file include

4.4.5 Testing for vulnerable remember password and pwd reset

4.4.6 Testing for Logout and Browser Cache Management Testing

4.5 Session Management Testing

4.5.1 Testing for Session Management Schema

4.5.2 Testing for Cookie and Session Token Manipulation

4.5.3 Testing for Exposed Session Variables

4.5.4 Testing for CSRF

4.5.5 Testing for HTTP Exploit

4.6 Data Validation Testing

4.6.1 Testing for Cross Site Scripting

4.6.1.1 Testing for HTTP Methods and XST

4.6.2 Testing for SQL Injection

4.6.2.1 Oracle Testing

4.6.2.2 MySQL Testing

4.6.2.3 SQL Server Testing

4.6.3 Testing for LDAP Injection

4.6.4 Testing for ORM Injection

4.6.5 Testing for XML Injection

4.6.6 Testing for SSI Injection

4.6.7 Testing for XPath Injection

4.6.8 IMAP/SMTP Injection

4.6.9 Testing for Code Injection

4.6.10 Testing for Command Injection

4.6.11 Testing for Buffer overflow

4.6.11.1 Testing for Heap overflow

4.6.11.2 Testing for Stack overflow

4.6.11.3 Testing for Format string

4.6.12 Testing for incubated vulnerabilities

4.7 Testing for Denial of Service

4.7.1 Testing for DoS Locking Customer Accounts

4.7.2 Testing for DoS Buffer Overflows

4.7.3 Testing for DoS User Specified Object Allocation

4.7.4 Testing for User Input as a Loop Counter

4.7.5 Testing for Writing User Provided Data to Disk

4.7.6 Testing for DoS Failure to Release Resources

4.7.7 Testing for Storing too Much Data in Session

4.8 Web Services Testing

4.8.1 XML Structural Testing

4.8.2 XML Content-level Testing

4.8.3 HTTP GET parameters/REST Testing

4.8.4 Testing for Naughty SOAP attachments

4.8.5 WS Replay Testing

4.9 AJAX Testing

4.9.1 AJAX Vulnerabilities

4.9.2 How to test AJAX