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

OWASP Testing Guide v2 Table of Contents

From OWASP
Jump to: navigation, search


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