OWASP Testing Guide v4 Table of Contents

This is the DRAFT of the table of content of the New Testing Guide v4. You can download the stable version v3 here

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

Updated: 15th February 2013

'''Contributors List

The following is a DRAFT of the Toc based on the feedback already received.

Foreword by OWASP Chair
[To review--> Eoin Keary]

1. Frontispiece
[To review--> Mat]

1.1 About the OWASP Testing Guide Project [To review--> Mat]

1.2 About The Open Web Application Security Project [To review--> ]

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.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 [To review--> Mat]

4.1.1 Testing Checklist [To review at the end of brainstorming --> Mat]

4.2 Information Gathering  [Andrew Muller]

4.2.1 Testing for Web Application Fingerprint (OWASP-IG-004) [Modify! rename to "Testing for Web Server Fingerprint"]

4.2.2 Spiders, Robots and Crawlers (OWASP-IG-001) [Modify! rename to "Review Webserver Metafiles" - could also be considered a Configuration Management test]

4.2.3 Application Discovery (OWASP-IG-005) [Modify! - rename to "Enumerate Applications on Webserver"]

4.2.4 Review webpage comments and metadata(OWASP-IG-007)

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

4.2.6 Identify application exit/handover points (OWASP-IG-008)

4.2.7 Map execution paths through application (OWASP-IG-009)

4.2.8 Testing for Web Application Fingerprint (OWASP-IG-010)

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

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

4.3 Configuration and Deploy Management Testing 

4.3.1 Testing for Infrastructure Configuration Management Testing weakness (OWASP-CM-001)

4.3.2 Testing for Application Configuration Management weakness (OWASP-CM-002)

4.3.3 Testing for File Extensions Handling (OWASP-CM-003)

4.3.4 Old, Backup and Unreferenced Files (OWASP-CM-004)

4.3.5 Infrastructure and Application Admin Interfaces (OWASP-CM-005)

4.3.6 Testing for Bad HTTP Methods (OWASP-CM-006)[new - Abian Blome]

> Informative Error Messages [MAT NOTE: in info gathering]

4.3.7 Testing for Database credentials/connection strings available (OWASP-CM-007)

4.3.8 Testing for Content Security Policy weakness (OWASP-CM-008)[New! - Simone Onofri]

4.3.9 Testing for Missing HSTS header (OWASP-CM-009)[New! Juan Manuel Bahamonde ]

4.3.10 Testing for RIA policy files weakness (OWASP-CM-010) [New! - Eduardo Castellanos]

> Incorrect time[New! MAT NOTE: explain the test in detail please]

> Unpatched components and libraries (e.g. JavaScript libraries)[New! NOTE: tu discuss it][Note: this can be covered inside OWASP-CM-001/OWASP-CM-002]

> Test data in production systems (and vice versa)[New! MAT NOTE: this is not a particular test that could find a vulnerability]

4.4 Authentication Testing 

4.4.1 Testing for Credentials Transported over an Encrypted Channel (OWASP-AT-001) [Robert Winkel]

4.4.2 Testing for User Enumeration and Guessable User Account (OWASP-AT-002) [Robert Winkel]

4.4.3 Testing for default credentials (OWASP-AT-003) [Davide Danelon]

4.4.4 Testing for Weak lock out mechanism (OWASP-AT-004) [New! - Robert Winkel]

> Account lockout DoS [New! - Robert Winkel - we can put it in the 4.4.4]

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

4.4.6 Testing for vulnerable remember password functionality (OWASP-AT-006) [Robert Winkel]

4.4.7 Testing for Browser cache weakness (OWASP-AT-007) [New! - Abian Blome]

4.4.8 Testing for Weak password policy (OWASP-AT-008) [New! - Robert Winkel]

4.4.9 Testing for Weak or unenforced username policy (OWASP-AT-009) [New! - Robert Winkel]

> Weak security question/answer [New! - Robert Winkel - MAT Note: same as AT-006]

4.4.10 Testing for failure to restrict access to authenticated resource (OWASP-AT-010) [New! - This seems better suited to the Authorization test cases (Andrew Muller)]

4.4.11 Testing for weak password change or reset functionalities (OWASP-AT-011) [New! - Robert Winkel]

4.4.12 Testing for CAPTCHA (OWASP-AT-012) [Note: Andrew Muller - CAPTCHA's objective is not authentication but to test humanness. This could be moved to Business Logic or the now deleted Denial of Service section]

> Weaker authentication in alternative channel (e.g. mobile app, IVR, help desk) [New!: MAT Note: to explain better the kind of test to perform please]

4.5 Session Management Testing [Amro AlOlaqi]

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

4.5.2 Testing for Cookies attributes (Cookies are set not ‘HTTP Only’, ‘Secure’, and no time validity) (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 Cross Site Request Forgery (CSRF) (OWASP-SM-005)

> Weak Session Token (MAT NOTE included in 4.5.1) 4.5.6 Testing for Session token not restricted properly (such as domain or path not set properly) (OWASP-SM-006) [New! - Abian Blome]

> Session passed over http (NOTE: included in SM-004) [New!]

4.5.7 Testing for logout functionality (OWASP-SM-007)

>Session token not removed on server after logout [New!: NOTE included in the above test]

> Logout function not properly implemented (NOTE:same above)

> Persistent session token [New! NOTE: this is not a vulnerability if session time out is correctly performed]

4.5.8 Testing for Session puzzling (OWASP-SM-008) [New! - Abian Blome]

> Missing user-viewable log of authentication events [NOTE: needs more details: which test perform?]

> Establishment of multiple sessions with same credentials [New! - Andrew Muller]

4.6 Authorization Testing

4.6.1 Testing Directory traversal/file include (OWASP-AZ-001) [Juan Galiana]

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

4.6.3 Testing for Privilege Escalation (OWASP-AZ-003) [Irene Abezgauz]

4.6.4 Testing for Insecure Direct Object References (OWASP-AZ-004) [Irene Abezgauz]

4.6.5 Testing for Failure to Restrict access to authorized resource (OWASP-AZ-005) [New!]

> Server component has excessive privileges (e.g. indexing service, reporting interface, file generator)[New!] > Lack of enforcement of application entry points (including exposure of objects)[New!]

4.7 Business Logic Testing (OWASP-BL-001) [To review--> David Fern] Business Logic

Business logic data validation[New!] NOTE MAT: to discuss this section Ability to forge requests[New!] Lack of integrity checks (e.g. overwriting updates) [New!] Lack of tamper evidence[New!] Use of untrusted time source[New!] Lack of limits to excessive rate (speed) of use[New!] Lack of limits to size of request[New!] Lack of limit to number of times a function can be used[New!] Bypass of correct sequence[New!] Missing user-viewable log of activity[New!] Self-hosted payment cardholder data processing[New!] Lack of security incident reporting information[New!] Defenses against application mis-use[New!]

4.8 Data Validation Testing

4.8.1 Testing for Reflected Cross Site Scripting (OWASP-DV-001) [Davide Danelon]

4.8.2 Testing for Stored Cross Site Scripting (OWASP-DV-002) [Davide Danelon]

4.8.3 Testing for HTTP Verb Tampering  [Brad Causey]

4.8.4 Testing for HTTP Parameter pollution [Luca Carettoni, Stefano Di Paola, Brad Causey]

4.8.5 Testing for Unvalidated Redirects and Forwards [Brad Causey]

4.8.5 Testing for SQL Injection (OWASP-DV-005) [Ismael Gonçalves](Ismael NOTE: ready to be reviewed)

4.8.5.1 Oracle Testing

4.8.5.2 MySQL Testing [Ismael Gonçalves]

4.8.5.3 SQL Server Testing

4.8.5.4 MS Access Testing

4.8.5.5 Testing for NoSQL injection [New!]

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) [Juan Galiana]

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) [Juan Galiana]

> Regular expression DoS[New!] note: to understand better

> XML DoS [New! - Andrew Muller]

Data Encryption (New!)

4.9.1 Testing for Insecure encryption usage (OWASP-EN-001)

4.9.2 Testing for Weak SSL/TSL Ciphers, Insufficient Transport Layer Protection (OWASP-EN-002) [Davide Danelon]

4.9.3 Testing for Padding Oracle (OWASP-EN-003) [Giorgio Fedon]

> [[Testing for Cacheable HTTPS Response | x.x.3 Testing for Cacheable HTTPS Response Cache directives insecure > Testing for Insecure Cryptographic Storage [put in x.x.1] [[Testing for Sensitive information sent via unencrypted channels | x.x.4

4.10 Web Service Testing [Tom Eston]

4.10.1 Scoping a Web Service Test (OWASP-WS-001)

4.10.2 WS Information Gathering (OWASP-WS-002)

4.10.3 WS Authentication Testing (OWASP-WS-003)

4.10.4 WS Management Interface Testing (OWASP-WS-004)

4.10.5 Weak XML Structure Testing (OWASP-WS-005)

4.10.6 XML Content-Level Testing (OWASP-WS-006)

4.10.7 WS HTTP GET Parameters/REST Testing (OWASP-WS-007)

4.10.8 WS Naughty SOAP Attachment Testing (OWASP-WS-008)

4.10.9 WS Replay/MiTM Testing (OWASP-WS-009)

4.10.10 WS BEPL Testing (OWASP-WS-010)

4.11 Client Side Testing [New!]

4.11.1 Testing for DOM based Cross Site Scripting (OWASP-CS-001) [Stefano Di Paola]

4.11.2 Testing for HTML5 (OWASP CS-002) [Juan Galiana]

4.11.3 Testing for Cross Site Flashing  (OWASP-CS-003)

4.11.4 Testing for Clickjacking (OWASP-CS-004) [Davide Danelon]

5. Writing Reports: value the real risk
5.1 How to value the real risk [To review--> Amro AlOlaqi]

5.2 How to write the report of the testing [To review--> Amro AlOlaqi]

Appendix A: Testing Tools

 * Black Box Testing Tools [To review--> Amro AlOlaqi]

Appendix B: Suggested Reading

 * Whitepapers [To review--> David Fern]
 * Books [To review--> David Fern]
 * Useful Websites [To review--> David Fern]

Appendix C: Fuzz Vectors

 * Fuzz Categories [To review--> Amro AlOlaqi]

Appendix D: Encoded Injection
[To review--> Amro AlOlaqi]