OSWA study materials
OSWA study resources

OSWA key terms

OSWA · Get comfortable with the vocabulary.

Content Discovery

The practice of finding unlinked files, directories, backup archives, and administrative panels on a web server by fuzzing wordlists against paths and comparing HTTP status codes, sizes, and redirect behaviour to spot valid resources.

Related: Directory Brute-Forcing, Wayback Machine Enumeration, Technology Fingerprinting
Directory Brute-Forcing

Sending large numbers of candidate path names to a target and filtering responses by status code, response length, or timing so that hidden directories and files are revealed even when no links point to them.

Related: Content Discovery, Virtual Host Enumeration
Virtual Host Enumeration

Discovering additional sites served by the same IP address by sending requests with different Host header values and comparing responses; necessary because many internal applications share a single front-end server.

Related: Host Header Injection, Technology Fingerprinting
Technology Fingerprinting

Identifying the server software, frameworks, and library versions in use by inspecting headers, cookie names, error pages, file extensions, and default assets, so that known vulnerabilities and attack paths can be selected.

Related: Content Discovery, Robots.txt Reconnaissance
Robots.txt Reconnaissance

Reading the robots.txt file to learn which paths the owner intended to hide from crawlers; Disallow entries frequently point to admin panels, staging areas, or backup directories that are valuable during enumeration.

Related: Technology Fingerprinting, Sitemap Analysis
Sitemap Analysis

Reviewing sitemap XML files and other crawler metadata to map an application's reachable URLs, including parameterised endpoints that are good candidates for injection testing.

Related: Robots.txt Reconnaissance, Parameter Discovery
Parameter Discovery

Finding hidden or undocumented request parameters by mining JavaScript files, archived URLs, and API documentation, or by fuzzing parameter names, because unlinked parameters often reach less-tested server-side code.

Related: Sitemap Analysis, Arjun-Style Parameter Mining
Arjun-Style Parameter Mining

Automated guessing of query, body, or JSON parameter names by sending candidate names and looking for changes in response length, status, or reflection, revealing parameters not visible in the rendered application.

Related: Parameter Discovery, Content Discovery
Wayback Machine Enumeration

Querying web archives such as the Wayback Machine and Common Crawl for historical URLs of a target, which often expose old endpoints, parameters, and files that are no longer linked from the live site.

Related: Content Discovery, Parameter Discovery
Host Header Injection

Supplying a crafted Host header so the application generates links, password-reset URLs, or cache keys using attacker-controlled values, enabling cache poisoning, reset-link theft, or routing to internal virtual hosts.

Related: Virtual Host Enumeration, Cache Poisoning
Cache Poisoning

Causing a shared cache to store a malicious response, typically by exploiting unkeyed inputs such as headers, so that other users receive the attacker's content; reconnaissance must identify which inputs the cache ignores when building its key.

Related: Host Header Injection, Web Cache Deception
Web Cache Deception

Tricking a cache into storing a victim-specific, sensitive response under a static-looking URL so the attacker can later retrieve it, usually by appending a file extension the cache treats as static.

Related: Cache Poisoning, Content Discovery
Reflected XSS

An attack where injected script is echoed back in the immediate response without being stored, executing in the victim's browser when they follow a crafted link or submit a crafted form, under the origin of the vulnerable site.

Related: Stored XSS, DOM-Based XSS, HTML Context Escaping
Stored XSS

Injection where the malicious payload is persisted server-side, such as in a comment or profile field, and served to every user who views the affected page, requiring no crafted link and often affecting administrators.

Related: Reflected XSS, DOM-Based XSS, Content Security Policy
DOM-Based XSS

A client-side flaw where JavaScript reads attacker-controlled data from a source such as location.hash and passes it to a dangerous sink such as innerHTML, so the payload never reaches the server.

Related: Source and Sink, Reflected XSS, HTML Context Escaping
Source and Sink

In DOM XSS analysis, a source is where untrusted data enters client-side code (location, document.referrer, postMessage) and a sink is a dangerous function or property (innerHTML, eval, document.write) that executes or renders it.

Related: DOM-Based XSS, Mutation XSS
HTML Context Escaping

Encoding characters such as angle brackets, quotes, and ampersands so injected data is treated as text rather than markup; correct escaping depends on whether the injection lands in element text, an attribute, a URL, or a script block.

Related: Reflected XSS, XSS Filter Bypass, Mutation XSS
XSS Filter Bypass

Techniques for evading blacklist filters and weak sanitizers, including alternate encodings, unusual event handlers, tag and attribute case variation, and browser parsing quirks that differ from the filter's assumptions.

Related: HTML Context Escaping, Mutation XSS, Content Security Policy
Mutation XSS

A bypass where a sanitizer's output is re-parsed by the browser into different markup, so a payload considered harmless by the filter becomes executable after the browser's own parsing and serialisation steps.

Related: XSS Filter Bypass, Source and Sink
Content Security Policy

A response header restricting which script sources a page may load and whether inline script may run; a strong policy mitigates XSS, while weak policies with unsafe-inline, wildcards, or JSONP endpoints can often be bypassed.

Related: Stored XSS, XSS Filter Bypass, Nonce-Based CSP Bypass
Nonce-Based CSP Bypass

Defeating a nonce-protected policy by reusing a nonce reflected on the page, abusing a script gadget in an allowlisted library, or injecting into a JSONP or base tag endpoint that the policy still trusts.

Related: Content Security Policy, XSS Filter Bypass
Cross-Site Request Forgery

An attack that makes a logged-in victim's browser send a state-changing request to a site that trusts the victim's cookies, without the attacker being able to read the response; requires predicting all request parameters.

Related: Anti-CSRF Token, SameSite Cookie, Cross-Origin Resource Sharing
Anti-CSRF Token

A random, unpredictable value tied to the user's session that must accompany state-changing requests; the server rejects requests lacking or mismatching the token, blocking forged submissions from other origins.

Related: Cross-Site Request Forgery, Token Reuse and Leakage, SameSite Cookie
SameSite Cookie

A cookie attribute controlling whether the cookie is sent on cross-site requests: Strict blocks all cross-site sends, Lax allows top-level GET navigations, and None allows all sends but requires the Secure flag.

Related: Cross-Site Request Forgery, Anti-CSRF Token
Token Reuse and Leakage

Weaknesses where a CSRF token is not bound to the user session, is static across users, or is exposed through a GET response or referrer, letting an attacker obtain a valid token and complete a forged request.

Related: Anti-CSRF Token, SameSite Cookie
Content-Type Bypass

Sending a forged request body in a format the CSRF defence does not expect, such as text/plain, multipart/form-data, or a URL-encoded body, so that the server still parses parameters while the protection is skipped.

Related: Cross-Site Request Forgery, Anti-CSRF Token
Union-Based SQL Injection

Appending a UNION SELECT statement so the injected query returns extra rows in the original result set, letting the attacker read data from other tables; requires matching the column count and compatible data types.

Related: Error-Based SQL Injection, Blind SQL Injection, Column Enumeration
Error-Based SQL Injection

Extracting data by forcing the database to emit error messages that contain query results or structural information, which is fast when verbose errors reach the client and the DBMS supports such functions.

Related: Union-Based SQL Injection, Blind SQL Injection
Blind SQL Injection

Injection where no data or errors are returned directly, so the attacker infers information from boolean true/false responses or from deliberate time delays, one bit or one character at a time.

Related: Boolean-Based Inference, Time-Based Blind SQLi, Union-Based SQL Injection
Boolean-Based Inference

A blind technique that submits conditions such as AND 1=1 versus AND 1=2 and compares the resulting page content, length, or status to determine whether the condition evaluated true.

Related: Blind SQL Injection, Time-Based Blind SQLi
Time-Based Blind SQLi

A blind technique that uses database-specific delay functions, such as SLEEP or pg_sleep, to make the response slow only when a tested condition is true, allowing data extraction even when page output never changes.

Related: Blind SQL Injection, Boolean-Based Inference
Column Enumeration

Determining the number and types of columns in the original query, using ORDER BY incrementing positions or UNION SELECT with increasing null counts, as a prerequisite for union-based extraction.

Related: Union-Based SQL Injection, SQL Injection Fingerprinting
SQL Injection Fingerprinting

Identifying the backend database engine and version through version functions, error message wording, string concatenation syntax, and comment styles, which determines the payloads that will work.

Related: Column Enumeration, Blind SQL Injection
Server-Side Request Forgery

An attack where the server is induced to make an HTTP or other request to a destination the attacker chooses, by supplying a URL to a feature such as an image fetcher, webhook, or PDF generator.

Related: Cloud Metadata Endpoint, SSRF Filter Bypass, Blind SSRF
Cloud Metadata Endpoint

An internal address, commonly 169.254.169.254, that returns instance credentials and configuration to code running on the host; reaching it through SSRF can yield cloud account takeover.

Related: Server-Side Request Forgery, SSRF Filter Bypass
SSRF Filter Bypass

Evading destination blocklists using alternate IP encodings, DNS names resolving to internal addresses, redirects, or URL parser discrepancies between the validation code and the HTTP client.

Related: Server-Side Request Forgery, Cloud Metadata Endpoint, DNS Rebinding
Blind SSRF

SSRF where the response body is not returned to the attacker, so confirmation and exploitation rely on out-of-band interaction, timing differences, or error messages observed on an attacker-controlled listener.

Related: Server-Side Request Forgery, Out-of-Band Interaction
DNS Rebinding

A technique where an attacker-controlled hostname first resolves to an external address to pass validation, then re-resolves to an internal address so the subsequent request reaches the internal network.

Related: SSRF Filter Bypass, Server-Side Request Forgery
XML External Entity Injection

Supplying XML that defines external entities which the parser resolves, allowing file disclosure, internal HTTP requests, or denial of service when the parser has entity resolution enabled.

Related: DTD, Parameter Entity, Blind XXE
DTD

Document Type Definition, the section of an XML document that declares elements and entities; XXE payloads abuse the internal or external DTD subset to declare entities that reference files or URLs.

Related: XML External Entity Injection, Parameter Entity
Parameter Entity

An entity declared with a percent sign and usable only inside a DTD; parameter entities enable out-of-band exfiltration and can reference external DTDs that contain further entity declarations.

Related: DTD, Blind XXE, Out-of-Band Interaction
Blind XXE

XXE where extracted data is not reflected in the response, so the attacker uses external parameter entities to send file contents to a listener or triggers errors that leak information indirectly.

Related: Parameter Entity, Out-of-Band Interaction, XML External Entity Injection
Out-of-Band Interaction

Confirming and exploiting a vulnerability by observing requests or DNS lookups arriving at an attacker-controlled server, used when in-band output is unavailable for SSRF, XXE, or blind injection.

Related: Blind XXE, Blind SSRF
Cross-Origin Resource Sharing

A browser mechanism where a response's Access-Control-Allow-Origin header tells the browser whether cross-origin JavaScript may read the response; misconfiguration can expose authenticated data to hostile sites.

Related: Origin Reflection, Null Origin Trust, Preflight Request
Origin Reflection

A CORS misconfiguration where the server echoes whatever Origin header it receives into Access-Control-Allow-Origin, which combined with credentials support lets any site read authenticated responses.

Related: Cross-Origin Resource Sharing, Access-Control-Allow-Credentials, Null Origin Trust
Access-Control-Allow-Credentials

A CORS response header that permits the browser to expose a credentialed response to cross-origin script; when paired with a reflected or wildcard origin it turns a misconfiguration into data theft.

Related: Origin Reflection, Cross-Origin Resource Sharing
Null Origin Trust

A server that accepts the literal Origin value null, which browsers send from sandboxed iframes and some redirect or file contexts, letting an attacker obtain a trusted cross-origin read.

Related: Origin Reflection, Cross-Origin Resource Sharing
Preflight Request

An automatic OPTIONS request the browser sends before certain cross-origin requests to learn allowed methods and headers; the preflight response reveals the server's CORS policy during testing.

Related: Cross-Origin Resource Sharing, Access-Control-Allow-Credentials
Server-Side Template Injection

Injection of template syntax into user input that is later rendered by a server-side template engine, causing evaluation on the server and often leading to remote code execution.

Related: Template Engine Identification, Sandbox Escape, Template Expression Evaluation
Template Engine Identification

Determining which template engine processes input by submitting polyglot arithmetic expressions and comparing the rendered output, since engines differ in syntax, evaluation order, and error messages.

Related: Server-Side Template Injection, Template Expression Evaluation
Template Expression Evaluation

Confirming SSTI by injecting a simple arithmetic expression such as a multiplication and observing the computed result in the response instead of the literal input, proving server-side evaluation.

Related: Server-Side Template Injection, Template Engine Identification
Sandbox Escape

Breaking out of a restricted template environment to reach underlying language objects and functions, typically by walking object attributes or using engine-specific globals, to achieve command execution.

Related: Server-Side Template Injection, Template Engine Identification