HTB CWPE study materials
HTB CWPE study resources

HTB CWPE key terms

HTB CWPE · Get comfortable with the vocabulary.

Virtual host enumeration

Discovering site names served by one IP by sending requests with different Host headers or reading certificate SANs, then comparing response size, status, and body to spot hidden applications.

Related: Content discovery, Subdomain takeover
Content discovery

Brute-forcing or wordlist-matching paths, files, and parameters to find endpoints not linked in the visible application, such as backups, admin panels, and API routes.

Related: Virtual host enumeration, Forced browsing
Forced browsing

Requesting resources that exist but are unlinked, relying on missing authorization rather than hidden names; differs from guessing because the path is known from leaks, robots.txt, or JavaScript bundles.

Related: Content discovery, IDOR
Technology fingerprinting

Identifying frameworks, servers, and libraries from headers, cookies, error pages, and static asset hashes so you can select matching exploits and default credentials.

Related: Source map exposure, Default credentials
Source map exposure

A deployed .map file or unminified bundle that reveals original JavaScript source, including hidden API endpoints, feature flags, and client-side validation logic.

Related: Technology fingerprinting, Client-side validation bypass
Subdomain takeover

Claiming a cloud or SaaS resource referenced by a dangling DNS record, letting you serve content under the victim's domain name.

Related: Virtual host enumeration, CORS misconfiguration
Credential stuffing

Replaying username and password pairs leaked elsewhere against a login form, betting that users reused them; detected by high failure ratios from many source addresses.

Related: Password spraying, Account enumeration
Password spraying

Trying one or a few common passwords across many accounts to stay under lockout thresholds, exploiting weak policy rather than leaked credentials.

Related: Credential stuffing, Account enumeration
Account enumeration

Distinguishing valid from invalid usernames through differing error text, response time, status codes, or registration and password-reset behavior.

Related: Password spraying, Timing attack
Session fixation

Forcing a victim to authenticate with a session identifier you already know, so the server keeps that identifier after login and you inherit the authenticated session.

Related: JWT alg confusion, Session token entropy
JWT alg confusion

Abusing weak JWT verification by switching the header algorithm, for example to none or from RS256 to HS256 so the public key is used as an HMAC secret.

Related: JWT claim tampering, Session fixation
JWT claim tampering

Editing payload claims such as role, sub, or tenant after signature verification is bypassed or the key is recovered, granting another user's privileges.

Related: JWT alg confusion, IDOR
Session token entropy

The unpredictability of a session identifier; low-entropy or sequential tokens can be guessed or brute-forced to hijack other users' sessions.

Related: Session fixation, Timing attack
Union-based SQL injection

Appending a UNION SELECT to the original query so attacker-chosen columns appear in the result set, useful only when column count and types match.

Related: Blind SQL injection, Second-order SQL injection
Blind SQL injection

Inferring query results from boolean differences, timing delays, or out-of-band callbacks when error messages and data are not returned directly.

Related: Union-based SQL injection, Out-of-band exfiltration
Second-order SQL injection

Payload stored safely by one request but concatenated unsafely into a query later, such as in an admin report or profile update.

Related: Union-based SQL injection, Stored XSS
NoSQL operator injection

Supplying query operators such as $ne or $regex in place of a scalar value so the database matches unintended documents, often bypassing login checks.

Related: JSON parameter pollution, Blind SQL injection
OS command injection

Breaking out of a shell string built from user input using metacharacters like semicolons, pipes, or backticks, then executing arbitrary commands on the server.

Related: Server-side template injection, Blind command injection
Blind command injection

Confirming command execution without seeing output, using time delays, DNS or HTTP callbacks, or file writes that are later retrieved.

Related: OS command injection, Out-of-band exfiltration
Server-side template injection

Injecting template syntax into input that the engine evaluates, such as {{7*7}} returning 49, which can escalate from data disclosure to remote code execution.

Related: SSTI sandbox escape, Expression language injection
SSTI sandbox escape

Reaching dangerous objects or methods from inside a template context, for example via Python class hierarchies or Java class loaders, to run operating system commands.

Related: Server-side template injection, Insecure deserialization
Expression language injection

Injecting into EL or SpEL expressions evaluated by frameworks, letting attackers call methods and instantiate classes when the expression is evaluated server-side.

Related: Server-side template injection, Insecure deserialization
Insecure deserialization

Passing attacker-controlled serialized data to a language's deserializer, which can construct object graphs that trigger code execution or file writes during reconstruction.

Related: Gadget chain, Magic method abuse
Gadget chain

A sequence of existing classes whose methods fire in order during deserialization, together producing a useful effect such as command execution without injecting new code.

Related: Insecure deserialization, Magic method abuse
Magic method abuse

Triggering implicit lifecycle hooks in PHP or Python objects, such as __wakeup, __destruct, or reduce, so behavior runs when an object is created or destroyed.

Related: Gadget chain, Insecure deserialization
Stored XSS

Persisting script in server data that later renders unescaped for other users, letting an attacker act with their session, including administrative sessions.

Related: DOM-based XSS, Content Security Policy bypass, Second-order SQL injection
DOM-based XSS

Client-side script sinks such as innerHTML or eval consuming attacker-controlled sources like location.hash, executing without the payload ever reaching the server.

Related: Stored XSS, Content Security Policy bypass
Content Security Policy bypass

Defeating CSP through overly permissive sources, JSONP endpoints, open redirects, or script gadgets so injected script still executes despite the policy.

Related: Stored XSS, DOM-based XSS
CSRF token bypass

Circumventing anti-CSRF defenses by removing the token, reusing a valid one, switching methods, or exploiting endpoints that never validate it.

Related: SameSite cookie bypass, CORS misconfiguration
SameSite cookie bypass

Getting a cross-site request to carry cookies despite SameSite=Lax or Strict, using top-level GET navigations, client-side redirects, or sibling subdomains.

Related: CSRF token bypass, CORS misconfiguration
CORS misconfiguration

Reflecting arbitrary Origin values or trusting null with credentials enabled, letting any site read authenticated responses from the victim application.

Related: SameSite cookie bypass, Subdomain takeover
SSRF

Making the server issue requests to attacker-chosen destinations, reaching internal services, cloud metadata endpoints, or localhost-only admin interfaces.

Related: SSRF filter bypass, Cloud metadata access
SSRF filter bypass

Evading blocklists using alternate IP encodings, DNS rebinding, redirects, or URL parser quirks so a blocked internal address is still reached.

Related: SSRF, Cloud metadata access
Cloud metadata access

Using SSRF to query the instance metadata service for temporary credentials, user data, and role tokens that allow lateral movement into cloud accounts.

Related: SSRF, SSRF filter bypass
Local file inclusion

Manipulating a file path parameter to read server files, often chained with log poisoning or uploaded content to convert file read into code execution.

Related: Path traversal, PHP wrapper abuse
Path traversal

Using ../ sequences or encoded variants to escape a base directory and access files outside the intended location.

Related: Local file inclusion, PHP wrapper abuse
PHP wrapper abuse

Using stream wrappers like php://filter, php://input, or data:// to read source, bypass filters, or supply executable content to an include.

Related: Local file inclusion, Path traversal
IDOR

Accessing another user's object by changing an identifier because the server checks authentication but not ownership of that specific record.

Related: Mass assignment, JWT claim tampering
Mass assignment

Sending extra object properties the API binds automatically, such as role or isAdmin, so the server updates fields the client was never meant to control.

Related: IDOR, Business logic flaw
Business logic flaw

Abusing legitimate workflow steps out of order or in unusual combinations, like negative quantities or skipped payment, to gain value the design did not intend.

Related: Mass assignment, Race condition
Race condition

Sending concurrent requests so a check and its update interleave, letting a coupon or balance be redeemed more times than allowed.

Related: Business logic flaw, IDOR
GraphQL introspection

Querying the schema for types, fields, and mutations, revealing hidden operations and arguments that are not exposed through the normal UI.

Related: API versioning bypass, Excessive data exposure
API versioning bypass

Reaching older or internal API versions such as /v1 or /internal that lack the authorization and validation added to the current version.

Related: GraphQL introspection, IDOR
Excessive data exposure

APIs returning full objects and relying on the client to hide fields, leaking password hashes, tokens, or other users' details in responses.

Related: GraphQL introspection, Mass assignment
JSON parameter pollution

Supplying duplicate or nested keys, or mixing JSON with form encoding, so different parsers pick different values and validation diverges from use.

Related: NoSQL operator injection, Mass assignment
Out-of-band exfiltration

Sending stolen data through DNS or HTTP requests to a server you control, used when blind injection returns no visible output.

Related: Blind SQL injection, Blind command injection
Attack chain

Linking low-impact findings, such as SSRF plus metadata credentials plus an internal admin panel, into a path that reaches a high-impact objective.

Related: Cloud metadata access, Privilege escalation
Privilege escalation

Moving from a low-privileged account or shell to administrative access by abusing roles, tokens, misconfigured services, or local system weaknesses.

Related: Attack chain, Mass assignment
Lateral movement

Using credentials, tokens, or trust relationships obtained from one compromised component to reach other hosts or services inside the environment.

Related: Attack chain, Cloud metadata access
Timing attack

Measuring small response-time differences to infer hidden values, such as valid usernames or byte-by-byte secret comparisons.

Related: Account enumeration, Session token entropy
Default credentials

Vendor-supplied usernames and passwords left unchanged on admin panels, databases, or middleware, giving immediate authenticated access.

Related: Technology fingerprinting, Privilege escalation
Client-side validation bypass

Intercepting and modifying requests so checks performed only in the browser, such as price, role, or file type, never apply on the server.

Related: Source map exposure, Mass assignment