OWASP Testing Guide v3 Table of Contents

This is the table of content of the New Testing Guide. You can download the stable version The Guide will be published here:

Back to the OWASP Testing Guide Project: http://www.owasp.org/index.php/OWASP_Testing_Project

Updated: 2nd November 2008

T A B L E   o f    C O N T E N T S

1. Frontispiece
1.1 About the OWASP Testing Guide Project

1.2 About The Open Web Application Security Project

2. Introduction
2.1 The OWASP Testing Project

2.2 Principles of Testing

2.3 Testing Techniques Explained

2.4 Security requirements test derivation,functional and non functional test requirements, and test cases through use and misuse cases

2.4.1 Security tests integrated in developers and testers workflows

2.4.2 Developers' security tests: unit tests and component level tests

2.4.3 Functional testers' security tests: integrated system tests, tests in UAT, and production environment

2.5 Security test data analysis and reporting: root cause identification and business/role case test data reporting

3. The OWASP Testing Framework
3.1. Overview

3.2. Phase 1: Before Development Begins 

3.3. Phase 2: During Definition and Design

3.4. Phase 3: During Development

3.5. Phase 4: During Deployment

3.6. Phase 5: Maintenance and Operations

3.7. A Typical SDLC Testing Workflow 

4. Web Application Penetration Testing
4.1 Introduction and Objectives

4.1.1 Testing Checklist

4.2 Information Gathering

4.2.1 Spiders, Robots and Crawlers (OWASP-IG-001)

4.2.2 Search Engine Discovery/Reconnaissance (OWASP-IG-002)

4.2.3 Identify application entry points (OWASP-IG-003)

4.2.4 Testing for Web Application Fingerprint (OWASP-IG-004)

4.2.5 Application Discovery (OWASP-IG-005)

4.2.6 Analysis of Error Codes Analysis of Error Codes (OWASP-IG-006)

4.3 Configuration Management Testing

4.3.1 SSL/TLS Testing (OWASP-CM-002) (SSL Version, Algorithms, Key length, Digital Cert. Validity)

4.3.2 DB Listener Testing (OWASP-CM-002)

4.3.3 Infrastructure Configuration Management Testing (OWASP-CM-003)

4.3.4 Application Configuration Management Testing (OWASP-CM-004)

4.3.5 Testing for File Extensions Handling (OWASP-CM-005)

4.3.6 Old, Backup and Unreferenced Files (OWASP-CM-006)

4.3.7 Infrastructure and Application Admin Interfaces (OWASP-CM-007)

4.3.8 Testing for HTTP Methods and XST (OWASP-CM-008)

4.4 Authentication Testing

4.4.1 Credentials transport over an encrypted channel (OWASP-AT-001)

4.4.2 Testing for user enumeration (OWASP-AT-002)

4.4.3 Testing for Guessable (Dictionary) User Account (OWASP-AT-003)

4.4.4 Brute Force Testing (OWASP-AT-004)

4.4.5 Testing for bypassing authentication schema (OWASP-AT-005)

4.4.6 Testing for vulnerable remember password and pwd reset (OWASP-AT-006)

4.4.7 Testing for Logout and Browser Cache Management (OWASP-AT-007)

4.4.8 Testing for CAPTCHA (OWASP-AT-008)

4.4.9 Testing Multiple Factors Authentication (OWASP-AT-009)

4.4.10 Testing for Race Conditions (OWASP-AT-010)

4.5 Session Management Testing

4.5.1 Testing for Session Management Schema (OWASP-SM-001)

4.5.2 Testing for Cookies attributes (OWASP-SM-002)

4.5.3 Testing for Session Fixation (OWASP-SM-003)

4.5.4 Testing for Exposed Session Variables  (OWASP-SM-004)

4.5.5 Testing for CSRF (OWASP-SM-005)

4.6 Authorization testing

4.6.1 Testing for path traversal (OWASP-AZ-001)

4.6.2 Testing for bypassing authorization schema (OWASP-AZ-002)

4.6.3 Testing for Privilege Escalation (OWASP-AZ-003)

4.7 Business Logic Testing (OWASP-BL-001)

4.8 Data Validation Testing

4.8.1 Testing for Reflected Cross Site Scripting (OWASP-DV-001)

4.8.2 Testing for Stored Cross Site Scripting (OWASP-DV-002)

4.8.3 Testing for DOM based Cross Site Scripting (OWASP-DV-003)

4.8.4 Testing for Cross Site Flashing  (OWASP-DV-004)

4.8.5 Testing for SQL Injection (OWASP-DV-005)

4.8.5.1 Oracle Testing

4.8.5.2 MySQL Testing

4.8.5.3 SQL Server Testing

4.8.5.4 MS Access Testing

4.8.5.5 Testing PostgreSQL (from OWASP BSP)

4.8.6 Testing for LDAP Injection (OWASP-DV-006)

4.8.7 Testing for ORM Injection  (OWASP-DV-007)

4.8.8 Testing for XML Injection (OWASP-DV-008)

4.8.9 Testing for SSI Injection (OWASP-DV-009)

4.8.10 Testing for XPath Injection (OWASP-DV-010)

4.8.11 IMAP/SMTP Injection (OWASP-DV-011)

4.8.12 Testing for Code Injection (OWASP-DV-012)

4.8.13 Testing for Command Injection  (OWASP-DV-013)

4.8.14 Testing for Buffer overflow (OWASP-DV-014)

4.8.14.1 Testing for Heap overflow

4.8.14.2 Testing for Stack overflow

4.8.14.3 Testing for Format string

4.8.15 Testing for incubated vulnerabilities (OWASP-DV-015)

4.8.16 Testing for HTTP Splitting/Smuggling (OWASP-DV-016)

4.9 Testing for Denial of Service

4.9.1 Testing for SQL Wildcard Attacks (OWASP-DS-001)

4.9.2 Testing for DoS Locking Customer Accounts (OWASP-DS-002)

4.9.3 Testing for DoS Buffer Overflows (OWASP-DS-003)

4.9.4 Testing for DoS User Specified Object Allocation (OWASP-DS-004)

4.9.5 Testing for User Input as a Loop Counter (OWASP-DS-005)

4.9.6 Testing for Writing User Provided Data to Disk (OWASP-DS-006)

4.9.7 Testing for DoS Failure to Release Resources (OWASP-DS-007)

4.9.8 Testing for Storing too Much Data in Session (OWASP-DS-008)

4.10 Web Services Testing

4.10.1 WS Information Gathering

4.10.2 Testing WSDL

4.10.3 XML Structural Testing

4.10.4 XML Content-level Testing

4.10.5 HTTP GET parameters/REST Testing

4.10.6 Naughty SOAP attachments

4.10.7 Replay Testing

4.11 AJAX Testing

4.11.1 AJAX Vulnerabilities

4.11.2 How to test AJAX

5. Writing Reports: value the real risk
5.1 How to value the real risk

5.2 How to write the report of the testing

Appendix A: Testing Tools

 * Black Box Testing Tools
 * Source Code Analyzers
 * Other Tools

Appendix B: Suggested Reading

 * Whitepapers
 * Books
 * Useful Websites

Appendix C: Fuzz Vectors

 * Fuzz Categories
 * Recursive fuzzing
 * Replasive fuzzing
 * Cross Site Scripting (XSS)
 * Buffer Overflows and Format String Errors
 * Buffer Overflows (BFO)
 * Format String Errors (FSE)
 * Integer Overflows (INT)
 * SQL Injection
 * Passive SQL Injection (SQP)
 * Active SQL Injection (SQI)
 * LDAP Injection
 * XPATH Injection