OWASP WSTG Testing Categories Explained in Depth

Comentários · 60 Visualizações

A deep dive into the OWASP WSTG testing categories: information gathering, configuration, identity, authentication, authorization, session, input validation, error handling and cryptography, with real findings, fixes and five practical FAQs

Anyone can list the sections of the OWASP Web Security Testing Guide. Fewer people can explain what a tester actually does inside each one, what a realistic finding looks like and how the categories connect. That gap matters, because the value of the guide lies in the connections. A leaked file path found during information gathering becomes the clue that makes an injection attack possible. A weak password reset flow found during authentication testing opens the door to the access control problems you test later.

This article goes through the core OWASP WSTG testing categories one by one. For each, you will find what the category covers, the questions a tester asks, the kinds of issues that turn up in real applications and the practical fixes development teams should apply. It is aimed at testers who already understand the basics and want a more detailed mental model. If you are new, the overview of the OWASP Testing Guide is a gentler starting point.A note on versions: the guide is community maintained and category names and numbering can change between releases. The structure below follows the widely used 4.2 layout. Confirm the current release on the official OWASP site and record the version you tested against.

Information Gathering (WSTGINFO)

Information gathering is the reconnaissance phase. The goal is to build an accurate picture of the application before attempting anything intrusive. Done well, it makes every later phase faster and more precise.

What testers examine

  • Search engine discovery, to find indexed pages, leaked documents or forgotten subdomains

  • Web server and framework fingerprinting through headers, error pages and file behaviour

  • Metadata files such as robots.txt, sitemap.xml and security.txt

  • Application entry points: every parameter, cookie, header and form field that accepts input

  • Execution paths through the application, including workflows and rolebased branches

  • The application architecture, including load balancers, content delivery networks and third party services

Typical findings

Version numbers disclosed in headers, administrative paths listed in robots.txt, staging environments reachable from the internet and comments in clientside code that reveal internal hostnames. None of these is catastrophic alone. Together, they hand an attacker a head start.

Remediation

Remove unnecessary version banners, keep sensitive paths out of public metadata, restrict nonproduction environments and strip internal comments from production builds. Remember that robots.txt is a request to crawlers, not an access control.

Configuration and Deployment Management Testing (WSTGCONF)

A secure application can still be deployed insecurely. This category looks at the environment around the code: servers, platforms, file handling and administrative surfaces.

What testers examine

  • Network and infrastructure configuration, including unnecessary open services

  • Platform configuration, such as default accounts, sample files and enabled debug modes

  • File extension handling and old, backup or unreferenced files left in web directories

  • Administrative interfaces exposed to the wrong audience

  • HTTP methods supported, including unnecessary use of PUT, DELETE or TRACE

  • HTTP Strict Transport Security and crossdomain policy files

  • Subdomain takeover possibilities, where a DNS record points to a service nobody controls any longer

  • Cloud storage permissions

Typical findings

Backup archives such as app.zip.bak downloadable from the web root, administrative consoles accessible from the public internet, dangling DNS records that allow subdomain takeover and misconfigured cloud storage that exposes internal files.

Remediation

Maintain a hardened baseline configuration, automate deployments so that configuration is consistent, remove unused files and services, restrict administrative access by network and identity and review DNS and storage permissions regularly.Review the underlying code too; the source code review lab is useful for spotting unsafe patterns before they reach production.

Identity Management Testing (WSTGIDNT)

Identity management covers how accounts and roles are defined, created and administered. It is easy to overlook, yet weaknesses here underpin many later problems.

What testers examine

  • Whether role definitions are clear and consistently enforced

  • Registration: can anyone register, with what validation and can the process be abused?

  • Account provisioning: who can create accounts and with what privileges?

  • Account enumeration: does the application reveal whether a username exists through different messages, response times or response sizes?

  • Weak or predictable username structures

Typical findings

Registration forms that allow privileged roles to be requested through a tampered parameter, login and recovery pages that confirm which email addresses are registered and predictable usernames that simplify credential attacks.

Remediation

Use uniform messages and consistent timing for existing and nonexisting accounts, enforce role assignment on the server rather than trusting client input and apply approval workflows for privileged accounts.

Authentication Testing (WSTGATHN)

Authentication verifies who a user claims to be. Weaknesses here are direct routes into accounts.

What testers examine

  • Credential transport: are credentials sent over encrypted channels only?

  • Default credentials on applications and supporting systems

  • Lockout and rate limiting mechanisms against brute force and credential stuffing

  • Authentication bypass: can pages be reached without logging in, by forced browsing or parameter manipulation?

  • Rememberme functionality and how persistent tokens are stored and validated

  • Browser cache behaviour: can sensitive pages be viewed through the back button after logout?

  • Password policy strength and password change functionality

  • Password reset and recovery flows

  • Multifactor authentication implementation and bypass options

  • Alternative channels, such as mobile apps or APIs, that may enforce weaker checks

Typical findings

Password reset links that do not expire, reset tokens that are predictable, absent lockout controls, multifactor flows that can be skipped by calling a later step directly and security questions with guessable answers.

Remediation

Use long, random, singleuse, timelimited reset tokens, apply progressive delays or lockout combined with monitoring, require multifactor verification server side at every sensitive step and follow current guidance on password policy that favours length and breach checking over arbitrary complexity rules.

Related reading: applications that rely on signed tokens need extra care and the JWT security best practices guide covers algorithm confusion, weak secrets and unsafe storage.

Authorization Testing (WSTGATHZ)

Authorization decides what an authenticated user may do. Broken access control consistently ranks at or near the top of real world risk lists, so this category deserves generous time.

What testers examine

  • Directory traversal and local file inclusion, where input influences file paths

  • Authorization schema bypass, such as reaching administrative functions as a standard user

  • Privilege escalation, both vertical (user to administrator) and horizontal (user to user)

  • Insecure direct object references, where changing an identifier exposes another user's data

  • OAuth weaknesses, including improper redirect validation and scope handling

A worked example

Suppose an invoice endpoint looks like /api/invoices/4821. A tester logs in as user A, captures the request, then repeats it as user B with the same identifier. If user B receives user A's invoice, the server authenticated the request but never checked ownership. That is an insecure direct object reference and it is simple to fix and very common to find. You can practise this scenario in the IDOR and broken access control lab.

Remediation

Enforce authorisation on the server for every request and every object, deny by default, avoid relying on hidden fields or client side checks and centralise access control logic so it cannot be forgotten on a new endpoint.

Session Management Testing (WSTGSESS)

HTTP is stateless, so applications use sessions to remember users. If an attacker can steal, guess or fix a session, they can impersonate the victim.

What testers examine

  • Session management schema: how tokens are generated, how random they are and how long they last

  • Cookie attributes: Secure, HttpOnly, SameSite, domain and path scope

  • Session fixation, where an attacker sets a known session identifier before the victim logs in

  • Exposed session variables, for instance tokens in URLs or logs

  • Crosssite request forgery protections

  • Logout behaviour and whether sessions are invalidated server side

  • Session timeout, including idle and absolute limits

  • Session puzzling and session hijacking possibilities

Typical findings

Session identifiers that do not change after login, cookies missing the HttpOnly flag, tokens that remain valid after logout and statechanging requests with no antiforgery protection.

Remediation

Generate long, unpredictable identifiers with a trusted framework, rotate them at login and privilege change, set restrictive cookie attributes, invalidate sessions on the server at logout and apply antiCSRF tokens or SameSite policies to statechanging actions.

Input Validation Testing (WSTGINPV)

This is the largest category and the home of many famous vulnerabilities. The principle is simple: never trust data from the client. The execution is anything but simple, because input travels through many layers and contexts.

What testers examine

  • Reflected, stored and DOMbased crosssite scripting

  • SQL injection and other injection forms, including NoSQL and LDAP

  • Command injection and code injection

  • Server side template injection

  • XML related issues, including external entity processing

  • HTTP parameter pollution and HTTP request smuggling

  • Server side request forgery

  • File inclusion and unrestricted upload behaviours

Why context matters

The same input can be harmless in one place and dangerous in another. A string rendered inside an HTML body needs different handling from one placed inside a JavaScript block, an attribute, a URL or a database query. This is why simple blacklists fail and why contextaware encoding and parameterisation are the correct defences.To see how this plays out, work through the SQL injection lab and the crosssite scripting lab. Each shows how an input that looks innocent changes the behaviour of a query or a page.

Error Handling Testing (WSTGERRH)

Error handling is a small category with outsized value to attackers. A well designed application tells users that something went wrong without explaining how it works internally.

What testers examine

  • Improper error handling that reveals stack traces, file paths, SQL fragments or framework versions

  • Differences in error responses that confirm or deny hidden conditions, such as whether a record exists

  • Behaviour when requests are malformed, oversized or unexpected

Typical findingsDetailed stack traces returned on a 500 error, database messages that reveal table or column names and debug pages left enabled in production.RemediationReturn generic user facing messages, log full details server side with appropriate access controls, disable debug output in production and test error paths as carefully as success paths.

Weak Cryptography Testing (WSTGCRYP)

Cryptography protects data in transit and at rest. The usual mistake is not breaking the maths but using it badly.

What testers examine

  • Weak transport layer security, including outdated protocol versions, weak cipher suites and certificate problems

  • Padding oracle vulnerabilities, where error differences leak information about encrypted data

  • Sensitive information sent over unencrypted channels

  • Use of weak or deprecated algorithms and poor key management

Typical findings

Support for obsolete protocol versions, mixed content that loads over plain HTTP, passwords hashed with fast, unsalted algorithms and secrets embedded in clientside code.

Remediation

Enforce modern TLS versions, enable HSTS, hash passwords with slow, salted functions designed for the purpose, use well reviewed libraries rather than custom cryptography and store keys in dedicated secret management systems.

The Categories Beyond the Core Nine

The guide also covers business logic, clientside and API testing. These are increasingly important:

  • Business logic testing asks whether workflows can be abused: skipping payment steps, replaying discounts, exceeding limits or manipulating order of operations. Automated tools rarely detect these, so human reasoning is essential.

  • Client side testing examines DOM manipulation, insecure browser storage, clickjacking, crossorigin resource sharing and similar browserside behaviour.

  • API testing applies the same ideas directly to endpoints, including GraphQL, where introspection, batching and authorisation per field create particular risks.

How the Categories Chain Together

Real attacks rarely rely on one flaw. Consider this realistic chain:

  1. Information gathering reveals an old staging subdomain.

  2. Configuration testing shows the staging site has verbose errors and default credentials.

  3. Authentication testing gives access to a low privilege account.

  4. Authorization testing reveals an insecure object reference that exposes other users' records.

  5. Input validation testing finds an injection point in an export feature.

  6. The combination exposes the production database schema.

Each flaw alone might be rated low or medium. Together they form a critical path. Strong testers think in chains and strong reports describe them. Practicing on a realistic target, such as the web application hacking lab, helps you see how the categories connect.

Conclusion

The OWASP WSTG categories are more than a table of contents. They are a deliberate sequence that moves from learning about a target, through the environment, identities and sessions, to the data flowing through the application and the protections wrapped around it. Understanding what each category tests and how findings in one feed into another, turns a list of techniques into a genuine methodology.

For testers, the lesson is to think in chains and document each step. For developers, it is to treat each category as a design question: have we limited what we expose, hardened our configuration, verified identity carefully, enforced access on the server, protected sessions, handled input in context, hidden our internals in errors and used cryptography properly?Pick the category where you feel least confident and spend a week on it. Reproduce the techniques in a lab, read the related code and write your own checklist. For a structured place to practise, start from the AppSecMaster home page and work through the labs one weakness at a time.

Frequently Asked Questions (FAQs)

How many testing categories does the OWASP WSTG have?

The widely used 4.2 release groups its content into twelve categories: information gathering, configuration and deployment management, identity management, authentication, authorization, session management, input validation, error handling, weak cryptography, business logic, clientside and API testing. Newer builds may reorganise these, so check the current release.

Which WSTG category should I test first?

Start with information gathering. It builds the map of entry points, technologies and roles that all later testing depends on. Skipping it usually leads to missed attack surfaces and wasted time.

What is the difference between authentication and authorization testing?

Authentication testing checks how the application verifies identity, such as login, passwords, lockout and recovery. Authorization testing checks what an authenticated user is permitted to do, such as accessing other users' data or administrative functions.

Why is input validation testing such a large category?

Because applications accept data through many channels and use it in many contexts, including HTML, SQL, operating system commands and XML. Each context creates its own risks, so the guide covers many injection and parsing weaknesses. The OWASP Top 10 guide explains how injection fits into the wider risk picture.

Can automated tools cover all WSTG categories?

No. Tools handle headers, known component versions and some injection points well, but struggle with business logic, multi role authorization and chained attacks. A combination of automated scanning and manual testing gives the best coverage.

Comentários