HTB CWEE study materials
HTB CWEE study resources

HTB CWEE flashcards

HTB CWEE · Build recall with a focused review session.

32 cards. Read the term and the definition here. The deck at the top of this page is optional.

Soft 404 detection
A server returns 200 for nonexistent paths. Detect by requesting random strings and comparing response length, word count, and content-type against real pages; filter fuzzing results by these deltas.
Vhost enumeration
Sending requests with different Host headers to the same IP. A response differing in length or status from the baseline Host reveals a virtual host not linked in DNS.
JavaScript bundle mining
Grepping minified JS for API base URLs, GraphQL operation names, feature flags, and hardcoded secrets. Bundles often disclose endpoints absent from visible HTML and sitemaps.
IDOR proof requirement
Demonstrating object access requires two accounts: request victim object A using attacker session B. A 200 containing victim data proves it; a 403 or empty body does not.
Mass assignment
Adding fields like role, isAdmin, or balance to JSON update bodies. If the server binds them without an allowlist, the privilege change persists and is confirmed by re-fetching the profile.
Session fixation
Attacker sets a known session cookie before victim login. If the server does not rotate the token after authentication, the attacker reuses the fixed value to hijack the session.
Boolean-based SQLi
Comparing responses for ' AND 1=1-- versus ' AND 1=2--. A consistent difference confirms injectability; ORDER BY n incremented to error reveals column count for UNION attacks.
NoSQL operator injection
Sending JSON like {"password":{"$ne":null}} to bypass MongoDB authentication. The operator changes query semantics; $where with JavaScript enables blind data extraction.
SSTI detection payloads
Submitting ${7*7}, {{7*7}}, <%= 7*7 %>, and #{7*7}. A reflected 49 confirms server-side template evaluation, and which syntax works fingerprints the engine.
Blind command injection confirmation
Using separators like ; | && $() with an out-of-band DNS or HTTP callback, or a sleep 5 delay. Callback or measured latency proves execution without visible output.
DOM-based XSS
A client-side source such as location.hash or postMessage flows into a sink like innerHTML or eval without server involvement. Server-side filtering cannot prevent it.
Prototype pollution
Injecting __proto__ or constructor.prototype keys through JSON merge operations to modify Object.prototype. Polluted properties affect every object, enabling logic bypass or RCE in Node.
DOM clobbering
HTML elements with id or name attributes become global variables, shadowing expected objects. An img named config can replace window.config and alter script behavior.
CSRF token validation
A per-request unpredictable token tied to the session, combined with SameSite cookies and Origin checks. A token present in the form but never validated server-side provides no protection.
SSRF via cloud metadata
Requesting 169.254.169.254 from the server to read IAM credentials. AWS uses /latest/meta-data/iam/security-credentials/, GCP requires the Metadata-Flavor: Google header.
Path traversal encodings
Variants of ../ including %2e%2e%2f, ..%2f, and %252e%252e%252f for double decoding. Filters often decode once, so double-encoded sequences bypass them and reach the filesystem.
LFI to RCE via logs
Writing PHP code into the User-Agent so it lands in access.log, then including that log through the LFI. Alternative targets are session files and /proc/self/environ.
Deserialization magic bytes
Java streams begin rO0AB in base64 or aced0005 in hex; PHP uses O:4:"User"; Python pickle starts 80 04; .NET uses AAEAAAD/////. These identify serialized input in requests.
JWT alg none attack
Setting the header algorithm to none and stripping the signature. If the library accepts unsigned tokens, arbitrary claims such as admin true are trusted by the application.
JWT key confusion
Signing an HS256 token with the server's RSA public key as the HMAC secret. Libraries that trust the header algorithm verify successfully, allowing forged tokens.
GraphQL introspection
Querying __schema returns all types, fields, and mutations. When disabled, field-suggestion error messages and wordlist tools reconstruct the schema incrementally.
Cross-site WebSocket hijacking
A WebSocket handshake lacking CSRF protection lets an attacker page open an authenticated socket using the victim's cookies, then read and send messages as that user.
OAuth state parameter
A random value bound to the user session and returned in the callback. Omitting or not validating it enables login CSRF, letting an attacker bind their account to the victim.
Exploit chain design
Sequencing primitives so each supplies the next input: SSRF reads cloud credentials, credentials reach an internal API, the API exposes a deserialization endpoint leading to RCE.
Linux privilege escalation triage
Checking sudo -l, SUID binaries against GTFOBins, cron jobs, file capabilities with getcap -r /, and writable service files before attempting kernel exploits.
Credential reuse pivoting
Testing harvested passwords against SSH, databases, admin panels, and cloud APIs. Reuse across services is common and often faster than exploiting a new vulnerability.
Egress-filtered reverse shells
When outbound TCP is blocked, use DNS-based callbacks or bind shells on allowed ports. Confirm which protocols leave the network before choosing a channel.
CVSS v3.1 base metrics
Eight metrics: attack vector, attack complexity, privileges required, user interaction, scope, confidentiality, integrity, and availability. Environmental adjustments are scored separately from the base.
Reproduction steps quality
Exact URLs, headers, payloads, and account roles so a developer replays the issue without guessing. Vague steps cause findings to be disputed or closed as not reproducible.
Actionable remediation guidance
Naming the specific control, such as parameterized queries, allowlist validation, or server-side authorization checks, rather than generic advice like sanitize all input.
Business impact statement
Translating a technical flaw into consequence: which data class is exposed, which accounts can be taken over, and which regulatory obligation is breached.
Retest evidence
Documenting the original finding, the fix applied, and a dated verification result. It closes the remediation loop and confirms the vulnerability is no longer exploitable.