
OWASP Web Security Testing Guide v4.2
The OWASP Web Security Testing Guide (WSTG) is a comprehensive guide to testing the security of web applications.
You can read the contents and the first 2,000 characters.
Free accounts get the whole book.
- By OWASP Foundation
- 155 chapters
- Updated Nov 1, 2026
- 134 readers
What’s inside
- Frontispiece
- Introduction
- The Web Security Testing Framework
- Penetration Testing Methodologies
- Web Application Security Testing
- Testing Introduction and Objectives
From the first page
The OWASP Web Security Testing Guide (WSTG) is a comprehensive guide to testing the security of web applications and web services. Created by the collaborative efforts of cybersecurity professionals and dedicated volunteers, the WSTG provides a framework of best practices used by penetration testers and organizations all over the world.
This book contains the complete WSTG, organized by testing category. Each individual test procedure is identified by its WSTG-XXXX-NN code for easy reference.
The problem of insecure software is perhaps the most important technical challenge of our time. The dramatic rise of web applications enabling business, social networking etc has only compounded the requirements to establish a robust approach to writing and securing our internet, web applications, and data.
At the Open Worldwide Application Security Project® (OWASP®), we're trying to make the world a place where insecure software is the anomaly, not the norm. The OWASP Testing Guide has an important role to play in solving this serious issue. It is vitally important that our approach to testing software for security issues is based
Preview · 2,000 of 1,239,973 characters
Contents
- 01OWASP Web Security Testing Guide v4.2p.1
- About This Editionp.1
- Testing Categoriesp.1
- 02Forewordp.2
- Why OWASP?p.2
- Tailoring and Prioritizingp.2
- The Role of Automated Toolsp.2
- Call to Actionp.2
- 03Frontispiecep.3
- Welcomep.3
- Copyright and Licenseep.3
- Leadersp.3
- Core Teamp.3
- Authorsp.3
- Graphic Designersp.3
- Reviewers or Editorsp.3
- Trademarksp.3
- +1 more section
- 04Introductionp.4
- The OWASP Testing Projectp.4
- Principles of Testingp.4
- Testing Techniques Explainedp.4
- Manual Inspections and Reviewsp.4
- Threat Modelingp.4
- Source Code Reviewp.4
- Penetration Testingp.4
- The Need for a Balanced Approachp.4
- +4 more sections
- 05The Web Security Testing Frameworkp.5
- Overviewp.5
- Phase 1 Before Development Beginsp.5
- Phase 2 During Definition and Designp.5
- Phase 3 During Developmentp.5
- Phase 4 During Deploymentp.5
- Phase 5 During Maintenance and Operationsp.5
- A Typical SDLC Testing Workflowp.5
- 06Penetration Testing Methodologiesp.6
- Summaryp.6
- OWASP Testing Guidesp.6
- Penetration Testing Execution Standardp.6
- PCI Penetration Testing Guidep.6
- Penetration Testing Frameworkp.6
- Technical Guide to Information Security Testing and Assessmentp.6
- Open Source Security Testing Methodology Manualp.6
- Referencesp.6
- 07Web Application Security Testingp.7
- 08Testing Introduction and Objectivesp.8
- What is Web Application Security Testing?p.8
- What is a Vulnerability?p.8
- What is a Threat?p.8
- What is a Test?p.8
- The Approach in Writing this Guidep.8
- What Is the OWASP Testing Methodology?p.8
See all 155 parts
- 09Information Gatheringp.9
- 10WSTG-INFO-01: Conduct Search Engine Discovery Reconnaissance for Information Leakagep.10
- Summaryp.10
- Test Objectivesp.10
- How to Testp.10
- Remediationp.10
- 11WSTG-INFO-02: Fingerprint Web Serverp.11
- Summaryp.11
- Test Objectivesp.11
- How to Testp.11
- Remediationp.11
- 12WSTG-INFO-03: Review Webserver Metafiles for Information Leakagep.12
- Summaryp.12
- Test Objectivesp.12
- How to Testp.12
- Conforms to IETF `draft-foudil-securitytxt-07`p.12
- Toolsp.12
- 13WSTG-INFO-04: Attack Surface Identificationp.13
- Summaryp.13
- Test Objectivesp.13
- How to Testp.13
- Toolsp.13
- 14WSTG-INFO-05: Review Web Page Content for Information Leakagep.14
- Summaryp.14
- Test Objectivesp.14
- How to Testp.14
- Toolsp.14
- Referencesp.14
- 15WSTG-INFO-06: Identify Application Entry Pointsp.15
- Summaryp.15
- Test Objectivesp.15
- How to Testp.15
- Toolsp.15
- Referencesp.15
- 16WSTG-INFO-07: Map Execution Paths Through Applicationp.16
- Summaryp.16
- Test Objectivesp.16
- How to Testp.16
- Toolsp.16
- Referencesp.16
- 17WSTG-INFO-08: Fingerprint Web Application Frameworkp.17
- Summaryp.17
- Test Objectivesp.17
- How to Testp.17
- Common Identifiersp.17
- Remediationp.17
- Toolsp.17
- Referencesp.17
- 18WSTG-INFO-09: Fingerprint Web Applicationp.18
- 19WSTG-INFO-10: Map Application Architecturep.19
- Summaryp.19
- Test Objectivesp.19
- How to Testp.19
- 20Configuration and Deployment Management Testingp.20
- 21WSTG-CONF-01: Test Network Infrastructure Configurationp.21
- Summaryp.21
- Test Objectivesp.21
- How to Testp.21
- Referencesp.21
- 22WSTG-CONF-02: Test Application Platform Configurationp.22
- Summaryp.22
- Test Objectivesp.22
- How to Testp.22
- Referencesp.22
- 23WSTG-CONF-03: Test File Extensions Handling for Sensitive Informationp.23
- Summaryp.23
- Test Objectivesp.23
- How to Testp.23
- Toolsp.23
- 24WSTG-CONF-04: Review Old Backup and Unreferenced Files for Sensitive Informationp.24
- Summaryp.24
- Test Objectivesp.24
- How to Testp.24
- Remediationp.24
- Toolsp.24
- 25WSTG-CONF-05: Enumerate Infrastructure and Application Admin Interfacesp.25
- Summaryp.25
- Test Objectivesp.25
- How to Testp.25
- Toolsp.25
- Referencesp.25
- 26WSTG-CONF-06: Test HTTP Methodsp.26
- Summaryp.26
- Test Objectivesp.26
- How to Testp.26
- Remediationp.26
- Toolsp.26
- Referencesp.26
- 27WSTG-CONF-07: Test HTTP Strict Transport Securityp.27
- Summaryp.27
- Test Objectivesp.27
- How to Testp.27
- Referencesp.27
- 28WSTG-CONF-08: Test RIA Cross Domain Policyp.28
- 29WSTG-CONF-09: Test File Permissionp.29
- Summaryp.29
- Test Objectivesp.29
- How to Testp.29
- Remediationp.29
- Toolsp.29
- Referencesp.29
- 30WSTG-CONF-10: Test for Subdomain Takeoverp.30
- Summaryp.30
- Test Objectivesp.30
- How to Testp.30
- Remediationp.30
- Toolsp.30
- Referencesp.30
- 31WSTG-CONF-11: Test Cloud Storagep.31
- Summaryp.31
- Test Objectivesp.31
- How to Testp.31
- Toolsp.31
- Referencesp.31
- 32WSTG-CONF-12: Testing for Content Security Policyp.32
- Summaryp.32
- Test Objectivesp.32
- How to Testp.32
- Remediationp.32
- Toolsp.32
- Referencesp.32
- 33WSTG-CONF-13: Test Path Confusionp.33
- Summaryp.33
- Test Objectivesp.33
- How To Testp.33
- Toolsp.33
- Remediationp.33
- Referencesp.33
- 34WSTG-CONF-14: Test Other HTTP Security Header Misconfigurationsp.34
- Summaryp.34
- Test Objectivesp.34
- Common Security Header Misconfigurationsp.34
- Risks of Misconfigured Security Headersp.34
- How to Testp.34
- Remediationp.34
- Toolsp.34
- Referencesp.34
- 35Identity Management Testingp.35
- 36WSTG-IDNT-01: Test Role Definitionsp.36
- Summaryp.36
- Test Objectivesp.36
- How to Testp.36
- Toolsp.36
- Referencesp.36
- 37WSTG-IDNT-02: Test User Registration Processp.37
- Summaryp.37
- Test Objectivesp.37
- How to Testp.37
- Remediationp.37
- Toolsp.37
- Referencesp.37
- 38WSTG-IDNT-03: Test Account Provisioning Processp.38
- Summaryp.38
- Test Objectivesp.38
- How to Testp.38
- Toolsp.38
- 39WSTG-IDNT-04: Testing for Account Enumeration and Guessable User Accountp.39
- Summaryp.39
- Test Objectivesp.39
- How to Testp.39
- Remediationp.39
- Toolsp.39
- Referencesp.39
- 40WSTG-IDNT-05: Testing for Weak or Unenforced Username Policyp.40
- 41Authentication Testingp.41
- 42WSTG-ATHN-01: Testing for Credentials Transported over an Encrypted Channelp.42
- 43WSTG-ATHN-02: Testing for Default Credentialsp.43
- Summaryp.43
- Test Objectivesp.43
- How to Testp.43
- Toolsp.43
- Referencesp.43
- 44WSTG-ATHN-03: Testing for Weak Lock Out Mechanismp.44
- Summaryp.44
- Test Objectivesp.44
- How to Testp.44
- Remediationp.44
- Referencesp.44
- 45WSTG-ATHN-04: Testing for Bypassing Authentication Schemap.45
- Summaryp.45
- Test Objectivesp.45
- How to Testp.45
- Toolsp.45
- Referencesp.45
- 46WSTG-ATHN-05: Testing for Vulnerable Remember Passwordp.46
- Summaryp.46
- Test Objectivesp.46
- How to Testp.46
- Remediationp.46
- 47WSTG-ATHN-06: Testing for Browser Cache Weaknessesp.47
- Summaryp.47
- Test Objectivesp.47
- How to Testp.47
- Toolsp.47
- Referencesp.47
- 48WSTG-ATHN-07: Testing for Weak Authentication Methodsp.48
- Summaryp.48
- Test Objectivesp.48
- How to Testp.48
- Remediationp.48
- Referencesp.48
- 49WSTG-ATHN-08: Testing for Weak Security Question Answerp.49
- Summaryp.49
- Test Objectivesp.49
- How to Testp.49
- Referencesp.49
- 50WSTG-ATHN-09: Testing for Weak Password Change or Reset Functionalitiesp.50
- Summaryp.50
- Test Objectivesp.50
- How to Testp.50
- Referencesp.50
- 51WSTG-ATHN-10: Testing for Weaker Authentication in Alternative Channelp.51
- Summaryp.51
- Examplep.51
- Test Objectivesp.51
- How to Testp.51
- Related Test Casesp.51
- Remediationp.51
- 52WSTG-ATHN-11: Testing Multi-Factor Authentication (MFA)p.52
- Summaryp.52
- Test Objectivesp.52
- How to Testp.52
- Related Test Casesp.52
- Remediationp.52
- Referencesp.52
- 53Authorization Testingp.53
- 54WSTG-ATHZ-01: Testing Directory Traversal File Includep.54
- Summaryp.54
- Test Objectivesp.54
- How to Testp.54
- Toolsp.54
- Referencesp.54
- 55WSTG-ATHZ-02: Testing for Bypassing Authorization Schemap.55
- Summaryp.55
- Test Objectivesp.55
- How to Testp.55
- Remediationp.55
- Toolsp.55
- Referencesp.55
- 56WSTG-ATHZ-03: Testing for Privilege Escalationp.56
- Summaryp.56
- Test Objectivesp.56
- How to Testp.56
- Referencesp.56
- Toolsp.56
- 57WSTG-ATHZ-04: Testing for Insecure Direct Object Referencesp.57
- Summaryp.57
- Test Objectivesp.57
- How to Testp.57
- Referencesp.57
- 58WSTG-ATHZ-05: Testing for OAuth Weaknessesp.58
- Summaryp.58
- Test Objectivesp.58
- How to Testp.58
- Related Test Casesp.58
- Remediationp.58
- Toolsp.58
- Referencesp.58
- 59WSTG-ATHZ-05.1: Testing for OAuth Authorization Server Weaknessesp.59
- Summaryp.59
- Test Objectivesp.59
- How to Testp.59
- Related Test Casesp.59
- Remediationp.59
- Toolsp.59
- Referencesp.59
- 60WSTG-ATHZ-05.2: Testing for OAuth Client Weaknessesp.60
- Summaryp.60
- Test Objectivesp.60
- How to testp.60
- Related Test Casesp.60
- Remediationp.60
- Toolsp.60
- Referencesp.60
- 61Session Management Testingp.61
- 62WSTG-SESS-01: Testing for Session Management Schemap.62
- Summaryp.62
- Test Objectivesp.62
- How to Testp.62
- Toolsp.62
- Referencesp.62
- 63WSTG-SESS-02: Testing for Cookies Attributesp.63
- Summaryp.63
- Test Objectivesp.63
- How to Testp.63
- Toolsp.63
- Referencesp.63
- 64WSTG-SESS-03: Testing for Session Fixationp.64
- Summaryp.64
- Test Objectivesp.64
- How to Testp.64
- Remediationp.64
- Toolsp.64
- Referencesp.64
- 65WSTG-SESS-04: Testing for Exposed Session Variablesp.65
- Summaryp.65
- Test Objectivesp.65
- How to Testp.65
- Referencesp.65
- 66WSTG-SESS-05: Testing for Cross Site Request Forgeryp.66
- Summaryp.66
- Test Objectivesp.66
- How to Testp.66
- Remediationp.66
- Toolsp.66
- Referencesp.66
- 67WSTG-SESS-06: Testing for Logout Functionalityp.67
- Summaryp.67
- Test Objectivesp.67
- How to Testp.67
- Toolsp.67
- Referencesp.67
- 68WSTG-SESS-07: Testing Session Timeoutp.68
- Summaryp.68
- Test Objectivesp.68
- How to Testp.68
- Referencesp.68
- 69WSTG-SESS-08: Testing for Session Puzzlingp.69
- Summaryp.69
- Test Objectivesp.69
- How to Testp.69
- Remediationp.69
- Referencesp.69
- 70WSTG-SESS-09: Testing for Session Hijackingp.70
- Summaryp.70
- Test Objectivesp.70
- How to Testp.70
- Toolsp.70
- 71WSTG-SESS-10: Testing JSON Web Tokensp.71
- Summaryp.71
- Test Objectivesp.71
- How to Testp.71
- Related Test Casesp.71
- Remediationp.71
- Toolsp.71
- Referencesp.71
- 72WSTG-SESS-11: Testing for Concurrent Sessionsp.72
- Summaryp.72
- Test Objectivesp.72
- How to Testp.72
- Remediationp.72
- Recommended Toolsp.72
- 73Input Validation Testingp.73
- 74WSTG-INPV-01: Testing for Reflected Cross Site Scriptingp.74
- Summaryp.74
- Test Objectivesp.74
- How to Testp.74
- Toolsp.74
- Referencesp.74
- 75WSTG-INPV-02: Testing for Stored Cross Site Scriptingp.75
- Summaryp.75
- Test Objectivesp.75
- How to Testp.75
- Toolsp.75
- Referencesp.75
- 76WSTG-INPV-03: Testing for HTTP Verb Tamperingp.76
- 77WSTG-INPV-04: Testing for HTTP Parameter Pollutionp.77
- Summaryp.77
- Test Objectivesp.77
- How to Testp.77
- Toolsp.77
- Referencesp.77
- 78WSTG-INPV-05: Testing for SQL Injectionp.78
- Summaryp.78
- Test Objectivesp.78
- How to Testp.78
- Remediationp.78
- Toolsp.78
- Referencesp.78
- 79WSTG-INPV-05.1: Testing for Oraclep.79
- Summaryp.79
- How to Testp.79
- Toolsp.79
- Referencesp.79
- 80WSTG-INPV-05.2: Testing for MySQLp.80
- Summaryp.80
- How to Testp.80
- Toolsp.80
- Referencesp.80
- 81WSTG-INPV-05.3: Testing for SQL Serverp.81
- Summaryp.81
- How to Testp.81
- Toolsp.81
- Referencesp.81
- 82WSTG-INPV-05.4: Testing PostgreSQLp.82
- Summaryp.82
- How to Testp.82
- Referencesp.82
- 83WSTG-INPV-05.5: Testing for MS Accessp.83
- Summaryp.83
- How to Testp.83
- Referencesp.83
- 84WSTG-INPV-05.6: Testing for NoSQL Injectionp.84
- Summaryp.84
- How to Testp.84
- Referencesp.84
- 85WSTG-INPV-05.7: Testing for ORM Injectionp.85
- Summaryp.85
- How to Testp.85
- Referencesp.85
- 86WSTG-INPV-05.8: Testing for Client-sidep.86
- Summaryp.86
- Test Objectivesp.86
- How to Testp.86
- Remediationp.86
- Referencesp.86
- 87WSTG-INPV-06: Testing for LDAP Injectionp.87
- Summaryp.87
- Test Objectivesp.87
- How to Testp.87
- Toolsp.87
- Referencesp.87
- 88WSTG-INPV-07: Testing for XML Injectionp.88
- Summaryp.88
- Test Objectivesp.88
- How to Testp.88
- Source Code Reviewp.88
- Toolsp.88
- Referencesp.88
- 89WSTG-INPV-08: Testing for SSI Injectionp.89
- Summaryp.89
- Test Objectivesp.89
- How to Testp.89
- Toolsp.89
- Referencesp.89
- 90WSTG-INPV-09: Testing for XPath Injectionp.90
- Summaryp.90
- Test Objectivesp.90
- How to Testp.90
- Referencesp.90
- 91WSTG-INPV-10: Testing for IMAP SMTP Injectionp.91
- Summaryp.91
- Test Objectivesp.91
- How to Testp.91
- Referencesp.91
- 92WSTG-INPV-11: Testing for Code Injectionp.92
- Summaryp.92
- Test Objectivesp.92
- How to Testp.92
- 93WSTG-INPV-11.1: Testing for File Inclusionp.93
- Summaryp.93
- Test Objectivesp.93
- +4 more sections
- 94WSTG-INPV-12: Testing for Command Injectionp.94
- +10 more sections
- 95WSTG-INPV-13: Testing for Buffer Overflowp.95
- 96WSTG-INPV-13b: Testing for Format String Injectionp.96
- +3 more sections
- 97WSTG-INPV-14: Testing for Incubated Vulnerabilityp.97
- +5 more sections
- 98WSTG-INPV-15: Testing for HTTP Response Splittingp.98
- +6 more sections
- 99WSTG-INPV-16: Testing for HTTP Request Smugglingp.99
- +6 more sections
- 100WSTG-INPV-17: Testing for Host Header Injectionp.100
- +4 more sections
- 101WSTG-INPV-18: Testing for Server-side Template Injectionp.101
- +5 more sections
- 102WSTG-INPV-19: Testing for Server-Side Request Forgeryp.102
- +5 more sections
- 103WSTG-INPV-20: Testing for Mass Assignmentp.103
- +5 more sections
- 104Error Handling Testingp.104
- 105WSTG-ERRH-01: Testing for Improper Error Handlingp.105
- +6 more sections
- 106WSTG-ERRH-02: Testing for Stack Tracesp.106
- 107Weak Cryptography Testingp.107
- 108WSTG-CRYP-01: Testing for Weak Transport Layer Securityp.108
- +5 more sections
- 109WSTG-CRYP-02: Testing for Padding Oraclep.109
- +5 more sections
- 110WSTG-CRYP-03: Testing for Sensitive Information Sent via Unencrypted Channelsp.110
- +6 more sections
- 111WSTG-CRYP-04: Testing for Weak Encryptionp.111
- +5 more sections
- 112Business Logic Testingp.112
- 113WSTG-BUSL-00: Introduction to Business Logicp.113
- +5 more sections
- 114WSTG-BUSL-01: Test Business Logic Data Validationp.114
- +7 more sections
- 115WSTG-BUSL-02: Test Ability to Forge Requestsp.115
- +7 more sections
- 116WSTG-BUSL-03: Test Integrity Checksp.116
- +7 more sections
- 117WSTG-BUSL-04: Test for Process Timingp.117
- +5 more sections
- 118WSTG-BUSL-05: Test Number of Times a Function Can Be Used Limitsp.118
- +6 more sections
- 119WSTG-BUSL-06: Testing for the Circumvention of Work Flowsp.119
- +6 more sections
- 120WSTG-BUSL-07: Test Defenses Against Application Misusep.120
- +6 more sections
- 121WSTG-BUSL-08: Test Upload of Unexpected File Typesp.121
- +6 more sections
- 122WSTG-BUSL-09: Test Upload of Malicious Filesp.122
- +15 more sections
- 123WSTG-BUSL-10: Test Payment Functionalityp.123
- +6 more sections
- 124Client-side Testingp.124
- 125WSTG-CLNT-01: Testing for DOM-Based Cross Site Scriptingp.125
- +5 more sections
- 126WSTG-CLNT-01.1: Testing for Self DOM Based Cross-Site Scriptingp.126
- +3 more sections
- 127WSTG-CLNT-02: Testing for JavaScript Executionp.127
- +3 more sections
- 128WSTG-CLNT-03: Testing for HTML Injectionp.128
- +3 more sections
- 129WSTG-CLNT-04: Testing for Client-side URL Redirectp.129
- +3 more sections
- 130WSTG-CLNT-05: Testing for CSS Injectionp.130
- +3 more sections
- 131WSTG-CLNT-06: Testing for Client-side Resource Manipulationp.131
- +3 more sections
- 132WSTG-CLNT-07: Testing Cross Origin Resource Sharingp.132
- +4 more sections
- 133WSTG-CLNT-08: Testing for Cross Site Flashingp.133
- +3 more sections
- 134WSTG-CLNT-09: Testing for Clickjackingp.134
- +4 more sections
- 135WSTG-CLNT-10: Testing WebSocketsp.135
- +5 more sections
- 136WSTG-CLNT-11: Testing Web Messagingp.136
- +3 more sections
- 137WSTG-CLNT-12: Testing Browser Storagep.137
- +5 more sections
- 138WSTG-CLNT-13: Testing for Cross Site Script Inclusionp.138
- +3 more sections
- 139WSTG-CLNT-14: Testing for Reverse Tabnabbingp.139
- +4 more sections
- 140WSTG-CLNT-15: Testing for Client-side Template Injectionp.140
- +5 more sections
- 141API Testingp.141
- 142WSTG-APIT-00: API Testing Overviewp.142
- +4 more sections
- 143WSTG-APIT-01: API Reconnaissancep.143
- +4 more sections
- 144WSTG-APIT-02: API Broken Object Level Authorizationp.144
- +7 more sections
- 145WSTG-APIT-99: Testing GraphQLp.145
- +6 more sections
- 146Reportingp.146
- 147Reportingp.147
- +6 more sections
- 148Vulnerability Naming Schemesp.148
- +5 more sections
- 149Appendixp.149
- 150Testing Tools Resourcep.150
- +7 more sections
- 151Suggested Readingp.151
- +5 more sections
- 152Fuzzingp.152
- +3 more sections
- 153Encoded Injectionp.153
- +4 more sections
- 154Historyp.154
- +7 more sections
- 155Leveraging Dev Toolsp.155
- +14 more sections



