This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org

Difference between revisions of "OWASP Testing Guide v2 Table of Contents"

From OWASP
Jump to: navigation, search
Line 69: Line 69:
 
[[Testing: Spidering and googling|4.2.3 Spidering and googling]]
 
[[Testing: Spidering and googling|4.2.3 Spidering and googling]]
  
[[Testing for Error Code|4.2.4 Analysis of error code]]
+
[[Testing for Error Code|4.2.4 Analysis of error codes]]
  
 
[[Testing for infrastructure configuration management|4.2.5 Infrastructure  
 
[[Testing for infrastructure configuration management|4.2.5 Infrastructure  
Line 80: Line 80:
 
[[Testing for application configuration management|4.2.6 Application configuration management testing]]
 
[[Testing for application configuration management|4.2.6 Application configuration management testing]]
  
[[Testing for file extensions handling|4.2.6.1 File extensions handling]]
+
[[Testing for file extensions handling|4.2.6.1 Testing for file extensions handling]]
  
 
[[Testing for old_file|4.2.6.2 Old, backup and unreferenced files]]
 
[[Testing for old_file|4.2.6.2 Old, backup and unreferenced files]]
Line 88: Line 88:
 
[[Testing for authentication|'''4.4 Authentication Testing''']]
 
[[Testing for authentication|'''4.4 Authentication Testing''']]
  
[[Testing for Default or Guessable User Account|4.4.1 Default or guessable (dictionary) user account]]
+
[[Testing for Default or Guessable User Account|4.4.1 Testing for guessable (dictionary) user account]]
  
[[Testing for Brute Force|4.4.2 Brute Force]]
+
[[Testing for Brute Force|4.4.2 Brute Force Testing]]
  
[[Testing for Bypassing Authentication Schema|4.4.3 Bypassing authentication schema]]
+
[[Testing for Bypassing Authentication Schema|4.4.3 Testing for bypassing authentication schema]]
  
[[Testing for Directory Traversal|4.4.4 Directory traversal/file include]]
+
[[Testing for Directory Traversal|4.4.4 Testing for directory traversal/file include]]
  
[[Testing for Vulnerable Remember Password and Pwd Reset|4.4.5 Vulnerable remember  
+
[[Testing for Vulnerable Remember Password and Pwd Reset|4.4.5 Testing for vulnerable remember  
 
password and pwd reset]]
 
password and pwd reset]]
  
[[Testing for Logout and Browser Cache Management|4.4.6 Logout and Browser Cache Management Testing]]
+
[[Testing for Logout and Browser Cache Management|4.4.6 Testing for Logout and Browser Cache Management Testing]]
  
 
[[Testing for Session Management|'''4.5 Session Management Testing''']]
 
[[Testing for Session Management|'''4.5 Session Management Testing''']]
  
[[Testing for Session_Management_Schema|4.5.1 Analysis of the Session Management Schema]]
+
[[Testing for Session_Management_Schema|4.5.1 Testing for Session Management Schema]]
  
[[Testing for Cookie and Session Token Manipulation|4.5.2 Cookie and Session Token Manipulation]]
+
[[Testing for Cookie and Session Token Manipulation|4.5.2 Testing for Cookie and Session Token Manipulation]]
  
[[Testing for Exposed Session Variables|4.5.3 Exposed Session Variables ]]
+
[[Testing for Exposed Session Variables|4.5.3 Testing for Exposed Session Variables ]]
  
[[Testing for Session Riding|4.5.4 Session Riding ]]
+
[[Testing for CSRF|4.5.4 Testing for CSRF]]
  
[[Testing for HTTP Exploit|4.5.5 HTTP Exploit ]]
+
[[Testing for HTTP Exploit|4.5.5 Testing for HTTP Exploit ]]
  
 
[[Testing for Data Validation|'''4.6 Data Validation Testing''']]
 
[[Testing for Data Validation|'''4.6 Data Validation Testing''']]
  
[[Testing for Cross site scripting|4.6.1 Cross Site Scripting]]
+
[[Testing for Cross site scripting|4.6.1 Testing for Cross Site Scripting]]
  
[[Testing for HTTP Methods and XST|4.6.1.1 HTTP Methods and XST ]]
+
[[Testing for HTTP Methods and XST|4.6.1.1 Testing for HTTP Methods and XST ]]
  
[[Testing for SQL Injection|4.6.2 SQL Injection ]]
+
[[Testing for SQL Injection|4.6.2 Testing for SQL Injection ]]
  
 
[[Testing for Oracle|4.6.2.1 Oracle Testing ]]
 
[[Testing for Oracle|4.6.2.1 Oracle Testing ]]
Line 127: Line 127:
 
[[Testing for SQL Server|4.6.2.3 SQL Server Testing]]
 
[[Testing for SQL Server|4.6.2.3 SQL Server Testing]]
  
[[Testing for LDAP Injection|4.6.3 LDAP Injection]]
+
[[Testing for LDAP Injection|4.6.3 Testing for LDAP Injection]]
  
[[Testing for ORM Injection|4.6.4 ORM Injection]]
+
[[Testing for ORM Injection|4.6.4 Testing for ORM Injection]]
  
[[Testing for XML Injection|4.6.5 XML Injection]]
+
[[Testing for XML Injection|4.6.5 Testing for XML Injection]]
  
[[Testing for SSI Injection|4.6.6 SSI Injection]]
+
[[Testing for SSI Injection|4.6.6 Testing for SSI Injection]]
  
[[Testing for XPath Injection|4.6.7 XPath Injection]]
+
[[Testing for XPath Injection|4.6.7 Testing for XPath Injection]]
  
 
[[Testing for IMAP/SMTP Injection|4.6.8 IMAP/SMTP Injection]]
 
[[Testing for IMAP/SMTP Injection|4.6.8 IMAP/SMTP Injection]]
  
[[Testing for Code Injection|4.6.9 Code Injection]]
+
[[Testing for Code Injection|4.6.9 Testing for Code Injection]]
  
[[Testing for OS Commanding|4.6.10 OS Commanding]]
+
[[Testing for Command Injection|4.6.10 Testing for Command Injection]]
  
[[Testing for Buffer Overflow|4.6.11 Buffer overflow Testing ]]
+
[[Testing for Buffer Overflow|4.6.11 Testing for Buffer overflow]]
  
[[Testing for Heap Overflow|4.6.11.1 Heap overflow ]]
+
[[Testing for Heap Overflow|4.6.11.1 Testing for Heap overflow]]
  
[[Testing for Stack Overflow|4.6.11.2 Stack overflow ]]
+
[[Testing for Stack Overflow|4.6.11.2 Testing for Stack overflow]]
  
[[Testing for Format String|4.6.11.3 Format string ]]
+
[[Testing for Format String|4.6.11.3 Testing for Format string]]
  
[[Testing for Incubated Vulnerability|4.6.12 Incubated vulnerability testing]]
+
[[Testing for Incubated Vulnerability|4.6.12 Testing for incubated vulnerabilities]]
  
[[Testing for Denial of Service|'''4.7 Denial of Service Testing''']]
+
[[Testing for Denial of Service|'''4.7 Testing for Denial of Service''']]
  
[[Testing for DoS Locking Customer Accounts|4.7.1 Locking Customer Accounts]]
+
[[Testing for DoS Locking Customer Accounts|4.7.1 Testing for DoS Locking Customer Accounts]]
  
[[Testing for DoS Buffer Overflows|4.7.2 Buffer Overflows]]
+
[[Testing for DoS Buffer Overflows|4.7.2 Testing for DoS Buffer Overflows]]
  
[[Testing for DoS User Specified Object Allocation|4.7.3 User Specified Object Allocation]]
+
[[Testing for DoS User Specified Object Allocation|4.7.3 Testing for DoS User Specified Object Allocation]]
  
[[Testing for User Input as a Loop Counter|4.7.4 User Input as a Loop Counter]]
+
[[Testing for User Input as a Loop Counter|4.7.4 Testing for User Input as a Loop Counter]]
  
[[Testing for Writing User Provided Data to Disk|4.7.5 Writing User Provided Data to Disk]]
+
[[Testing for Writing User Provided Data to Disk|4.7.5 Testing for Writing User Provided Data to Disk]]
  
[[Testing for DoS Failure to Release Resources|4.7.6 Failure to Release Resources]]
+
[[Testing for DoS Failure to Release Resources|4.7.6 Testing for DoS Failure to Release Resources]]
  
[[Testing for Storing too Much Data in Session|4.7.7 Storing too Much Data in Session]]
+
[[Testing for Storing too Much Data in Session|4.7.7 Testing for Storing too Much Data in Session]]
  
 
[[Testing for Web Services|'''4.8 Web Services Testing''']]
 
[[Testing for Web Services|'''4.8 Web Services Testing''']]
Line 177: Line 177:
 
[[Testing for WS HTTP GET parameters/REST attacks|4.8.3 HTTP GET parameters/REST Testing ]]
 
[[Testing for WS HTTP GET parameters/REST attacks|4.8.3 HTTP GET parameters/REST Testing ]]
  
[[Testing for Naughty SOAP Attachments|4.8.4 Naughty SOAP attachments]]
+
[[Testing for Naughty SOAP Attachments|4.8.4 Testing for Naughty SOAP attachments]]
  
[[Testing for WS Replay|4.8.5 Replay Testing]]
+
[[Testing for WS Replay|4.8.5 WS Replay Testing]]
  
 
[[Testing_for_AJAX:_introduction|'''4.9 AJAX Testing''']]
 
[[Testing_for_AJAX:_introduction|'''4.9 AJAX Testing''']]

Revision as of 16:29, 18 January 2007


Foreword by OWASP Chair

1. Frontispiece

1.1 About the OWASP Testing Guide Project

1.1.1 Copyright

1.1.2 Editors

1.1.3 Authors and Reviewers

1.1.4 Revision History

1.1.5 Trademarks

1.2 About The Open Web Application Security Project

1.2.1 Overview

1.2.2 Structure

1.2.3 Licensing

1.2.4 Participation and Membership

1.2.5 Projects

1.2.6 OWASP Privacy Policy


2. Introduction

2.1 The OWASP Testing Project

2.2 Principles of Testing

2.3 Testing Techniques Explained


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.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


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