OWASP Testing Guide v3 Table of Contents

This is the draft of table of content of the New Testing Guide. You can download the stable version or read it on line here

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

Testing Guide v3 (draft) Updated: 13rd August 2008 (new)--> new articles, (toimp)--> needs to improve or to review, (xxx%) --> current state of the article

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

(toimp: M.Meucci)1. Frontispiece
(toimp: M.Meucci)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

(new: M. Morana 90%) 2.4 Security requirements test derivation,functional and non functional test requirements, and test cases through use and misuse cases

(new: M. Morana 100%) 2.4.1 Security tests integrated in developers and testers workflows

(new: M. Morana 100%) 2.4.2 Developers' security tests: unit tests and component level tests

(new: M. Morana 90%) 2.4.3 Functional testers' security tests: integrated system tests, tests in UAT, and production environment

(new: M. Morana 100%) 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. (toimp:M.Meucci) Web Application Penetration Testing
4.1 Introduction and Objectives

(new: M.Meucci) 4.1.1 Testing Checklist

(toimp: B.Damele) 4.2 Information Gathering

(new:C.Heinrich)4.2.1 Spiders, Robots and Crawlers

(new:C.Heinrich)4.2.2 Search Engine Discovery/Reconnaissance

(new: K.Horvath - 100%) 4.2.3 Identify application entry points

4.2.4 (toimp) Testing for Web Application Fingerprint

4.2.5 Application Discovery

(toimp)4.2.6 Analysis of Error Codes

 (new) 4.3 Configuration Management Testing

(to imp) 4.3.1 SSL/TLS Testing (SSL Version, Alghoritms, Key lenght, Digital Cert. Validity

4.3.2 DB Listener Testing

(to imp) 4.3.3 Infrastructure Configuration Management Testing

4.3.4 Application Configuration Management Testing

4.3.5 Testing for File Extensions Handling

4.3.6 Old, Backup and Unreferenced Files

(new) 4.3.7 Infrastructure and Application Admin Interfaces

4.3.8 Testing for HTTP Methods and XST

(toimp: K.Horvath - 100%) 4.4 Business Logic Testing

(toimp: M.Meucci) 4.5 Authentication Testing

(new: G.Ingrosso - 80%) 4.5.1 Credentials transport over an encrypted channel

(new: M.Meucci, M.Mella - 90%) 4.5.2 Testing for user enumeration

(to imp: K.Horvath - 95%) 4.5.3 Testing for Guessable (Dictionary) User Account

4.5.4 Brute Force Testing

4.5.5 Testing for bypassing authentication schema

4.5.6 Testing for vulnerable remember password and pwd reset

4.5.7 Testing for Logout and Browser Cache Management Testing

(new: P.Luptak - 100% ) 4.5.8 Testing for CAPTCHA

(new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication

(new: M.Meucci - 90%) 4.6 Authorization testing

4.6.1 Testing for path traversal

(new: M.Meucci)4.6.2 Testing for bypassing authorization schema

(new: Cecil Su, M.Meucci - 90%)4.6.3 Testing for Privilege Escalation

4.7 Session Management Testing

4.7.1 Testing for Session Management Schema

(new)4.7.2 Test the token strength (old 4.5.2 Testing for Cookie and Session Token Manipulation)

(new: K.Horvath - 100%) 4.7.3 Testing for Cookies attributes

(new: M.Meucci) 4.7.4. Testing for Session Fixation

4.7.5 Testing for Exposed Session Variables

4.7.6 Testing for CSRF

4.7.7 Testing for HTTP Exploit

4.8 Data Validation Testing

(new: A. Coronel)4.8.1 Testing for Reflected Cross Site Scripting

(new: R. Suggi Liverani - 100%)4.8.2 Testing for Stored Cross Site Scripting

(new: A.Agarwwal, Kuza55) 4.8.3 Testing for DOM based Cross Site Scripting

(new: A.Agarwwal)4.8.4 Testing for Cross Site Flashing

(toimp: B.Damele) 4.8.5 Testing for SQL Injection

4.8.5.1 Oracle Testing

4.8.5.2 MySQL Testing

4.8.5.3 SQL Server Testing

4.8.5.4 (new: D.Bellucci from OWASP BSP) Testing PostgreSQL

4.8.6 Testing for LDAP Injection

4.8.7 Testing for ORM Injection

4.8.8 Testing for XML Injection

4.8.9 Testing for SSI Injection

4.8.10 Testing for XPath Injection

4.8.11 IMAP/SMTP Injection

4.8.12 Testing for Code Injection

4.8.13 Testing for Command Injection

4.8.14 Testing for Buffer overflow

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

4.9 Testing for Denial of Service

(new: F.Mavituna - 100%) 4.9.1 Testing for SQL Wildcard Attacks

4.9.2 Testing for DoS Locking Customer Accounts

4.9.3 Testing for DoS Buffer Overflows

4.9.4 Testing for DoS User Specified Object Allocation

4.9.5 Testing for User Input as a Loop Counter

4.9.6 Testing for Writing User Provided Data to Disk

4.9.7 Testing for DoS Failure to Release Resources

4.9.8 Testing for Storing too Much Data in Session

(toimp: D.Wichers) 4.10 Web Services Testing

4.10.1 XML Structural Testing

4.10.2 XML Content-level Testing

4.10.3 HTTP GET parameters/REST Testing

4.10.4 Testing for Naughty SOAP attachments

4.10.5 WS Replay Testing

(new: Pdp, O.Segal, S. Di Paola) 4.11 Client side testing

(new) 4.11.1 AJAX Testing

(new)4.11.2 Flash Testing

(new)4.11.3 RIA Testing

(toimp: Mat)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