OSWE study materials
OSWE study resources

OSWE key terms

OSWE · Get comfortable with the vocabulary.

Taint analysis

A code review technique that tracks untrusted input from where it enters a program to where it is used, revealing whether validation or sanitization happens before the value reaches a dangerous operation.

Related: Source and sink, Parameter fuzzing
Source and sink

In data-flow analysis, a source is where attacker-controlled data enters, and a sink is a dangerous function that consumes data; a flaw exists when tainted data reaches a sink without adequate sanitization.

Related: Taint analysis, Insecure Direct Object Reference
Attack surface mapping

Enumerating every endpoint, parameter, header, cookie, and feature an application exposes so a tester knows where to probe for weaknesses before attempting exploitation.

Related: Content discovery, Parameter fuzzing
Content discovery

Requesting guessed or wordlist-derived paths and filenames that are not linked in the interface, to find backups, admin panels, debug pages, or forgotten endpoints left accessible.

Related: Attack surface mapping, Open redirect
Parameter fuzzing

Automated submission of malformed, boundary, and special-character payloads to inputs while monitoring responses, status codes, and timing to identify parsing errors or injection points.

Related: Taint analysis, Blind SQL injection
Insecure Direct Object Reference

An access control weakness where an application uses a user-supplied identifier to fetch a record without verifying that the requester owns or may view that record.

Related: Mass assignment, Privilege escalation
Privilege escalation

Horizontal escalation lets one user act as a peer with equal rights; vertical escalation lets a lower-privileged user obtain administrative capabilities, often by manipulating roles, cookies, or hidden endpoints.

Related: Insecure Direct Object Reference, Mass assignment
Session fixation

An attack where the tester forces a victim to use a session identifier known to the attacker; if the application does not issue a new identifier at login, the attacker reuses it to hijack the authenticated session.

Related: JWT algorithm confusion, CSRF token bypass
JWT algorithm confusion

Manipulating a JSON Web Token's header or key handling so the server verifies a signature with an unintended algorithm, such as accepting a token signed using the public key as an HMAC secret.

Related: Session fixation, Privilege escalation
CSRF token bypass

Defeating cross-site request forgery defenses by removing, duplicating, or predicting the token, or by exploiting endpoints that accept state-changing requests without validating it.

Related: XSS-to-CSRF chaining, Session fixation
Password reset poisoning

Supplying a forged Host header or similar value in a reset request so the generated recovery link points to an attacker-controlled domain, allowing theft of the reset token.

Related: Open redirect, SSRF
UNION-based SQL injection

Appending a crafted UNION SELECT statement to an injectable query so the database returns extra rows, letting the attacker extract data from other tables through the application's normal output.

Related: Blind SQL injection, Source and sink
Blind SQL injection

Extracting information from an injection point when query results are not displayed, by asking true or false questions and observing boolean response differences or time delays.

Related: UNION-based SQL injection, Parameter fuzzing
NoSQL operator injection

Inserting query operators such as $ne or $gt into JSON or parameter values so a NoSQL database evaluates attacker-chosen logic, commonly bypassing login checks.

Related: LDAP injection, Mass assignment
LDAP injection

Injecting filter metacharacters into directory queries to alter the search logic, potentially authenticating without valid credentials or enumerating directory entries.

Related: NoSQL operator injection, Parameter fuzzing
OS command injection

Passing shell metacharacters into an application that builds an operating-system command from user input, causing additional attacker-supplied commands to execute on the server.

Related: Web shell, Server-Side Template Injection
Stored XSS

Persisting malicious script in server-side storage so it executes in the browsers of other users who later view the affected page, requiring no crafted link to be sent.

Related: DOM-based XSS, XSS-to-CSRF chaining
DOM-based XSS

Script execution caused by client-side JavaScript reading attacker-controlled data from the URL or another browser source and writing it into a dangerous DOM sink.

Related: Stored XSS, CSP bypass
CSP bypass

Circumventing Content Security Policy restrictions by abusing allowed hosts, JSONP endpoints, script gadgets, or missing directives so injected JavaScript can execute.

Related: DOM-based XSS, XSS-to-CSRF chaining
XSS-to-CSRF chaining

Using injected JavaScript to read a page's anti-CSRF token and submit privileged requests as the victim, turning a script injection into unauthorized state-changing actions.

Related: Stored XSS, CSRF token bypass
Path traversal

Supplying sequences such as ../ in a filename parameter so the resolved path escapes the intended directory, allowing reading or writing files elsewhere on the server.

Related: Local File Inclusion, Unrestricted file upload
Local File Inclusion

An include or file-read parameter that accepts user input, letting an attacker load arbitrary local files such as configuration or credential files, and sometimes execute code through log poisoning.

Related: Path traversal, PHP stream wrappers
Remote File Inclusion

A file inclusion vulnerability where the application fetches a remote URL supplied by the attacker, executing attacker-hosted code if remote includes are enabled.

Related: Local File Inclusion, Web shell
Unrestricted file upload

Allowing users to upload files without adequate validation of type, content, or destination, enabling web shell placement or stored script execution.

Related: Web shell, Path traversal
PHP stream wrappers

Stream wrappers such as php://filter and data:// that can be used through file inclusion or file functions to read source code or supply payloads without writing a file.

Related: Local File Inclusion, Unrestricted file upload
Insecure deserialization

Reconstructing objects from attacker-controlled serialized data, which can trigger dangerous methods or property manipulation during object creation and cleanup.

Related: Gadget chain, Server-Side Template Injection
Gadget chain

A sequence of existing classes with magic methods that, when triggered during deserialization, calls one another to reach a sensitive function such as command execution.

Related: Insecure deserialization, Vulnerability chaining
Server-Side Template Injection

Injecting template syntax into user-controlled content that the server evaluates, allowing attackers to read variables, access internals, and often execute commands.

Related: OS command injection, Insecure deserialization
SSRF

Making the server issue HTTP or other requests to a destination chosen by the attacker, reaching internal services, cloud metadata endpoints, or localhost-only interfaces.

Related: XXE, Open redirect
XXE

Exploiting an XML parser that resolves external entities, causing it to read local files, perform network requests, or expand entities in denial-of-service attacks.

Related: SSRF, Blind XXE
Blind XXE

An XXE variant where extracted data is not returned in the response, so the attacker exfiltrates it through out-of-band DNS or HTTP requests to a controlled server.

Related: XXE, Out-of-band callback listener
Business logic flaw

A weakness in intended workflow rules rather than code syntax, such as skipping payment steps, reusing coupons, or manipulating quantities to gain unintended value.

Related: Race condition, Mass assignment
Mass assignment

Binding request parameters directly to object properties so an attacker can set fields the developer never intended to expose, such as role or account balance.

Related: Insecure Direct Object Reference, Privilege escalation
Race condition

Exploiting the timing gap between a check and the action it protects, sending concurrent requests so a limit or balance is validated before being modified.

Related: Business logic flaw, Vulnerability chaining
Exploit script

A custom program that automates request construction, payload delivery, and response parsing to reliably demonstrate or weaponize a discovered vulnerability.

Related: Vulnerability chaining, Out-of-band callback listener
Vulnerability chaining

Combining multiple lower-severity flaws, such as information disclosure plus injection plus file write, so their combined effect achieves a higher-impact objective.

Related: Exploit script, Gadget chain
Out-of-band callback listener

A controlled server or DNS service that records interactions from the target, used to confirm blind vulnerabilities and exfiltrate data when responses are not visible.

Related: Blind XXE, Exploit script
Web shell

A small script uploaded to a server that accepts commands through HTTP parameters, giving the attacker persistent remote command execution through the web server.

Related: Unrestricted file upload, OS command injection
Open redirect

A parameter that sends users to an arbitrary external URL, abused for phishing or chained with authentication flows to leak tokens.

Related: Password reset poisoning, SSRF