
text, no obvious behavior change, just a boolean condition you have to infer from timing or from
subtle differences in an otherwise identical response, then automate into a characterbycharacter
data extraction loop. Unionbased variants sit in between, rewarding players who take the time to
fingerprint column counts and data types before trying to pull real data out of the response.
Command injection challenges disguise an operating system call behind ordinary looking
functionality: a network diagnostic tool, a file conversion feature, anything that plausibly shells
out under the hood. The tell is almost always in the feature description before it's in the code:
anything that sounds like it touches the OS is worth testing with command separators and
chaining operators to see if your input escapes its intended boundary. Reading source when it is
available collapses both of these categories from guess and check into confirm and exploit a
habit built through structured source code review practice long before you ever open a proxy.
Session and Trust Boundaries: XSS and CSRF
CrossSite Scripting (XSS) challenge design splits into three behaviors that require different
detection instincts. Reflected XSS shows up in the URL and fires immediately, making it the
fastest flag most players ever capture. Stored XSS is quieter but scores higher in most rubrics,
because the payload persists sitting in a comment or profile field until a simulated admin bot
visits the page and hands over a session token. DOMbased XSS is the one that punishes
players who only test server responses: the vulnerable sink lives entirely in clientside
JavaScript, so the only way to find it reliably is to actually read the script rather than fuzz the
input field.
CSRF works on a fundamentally different axis than the injection and XSS categories above; you
are not exploiting the application directly, you are weaponizing a victim's authenticated session
against them. A typical challenge asks you to build an autosubmitting form or fetch request that
changes account settings or grants elevated access, then get a bot session to visit your page.
Because modern frameworks often include antiCSRF tokens by default, CSRF challenges are
frequently paired with a secondary flaw: a loose CORS policy, most often to make the full chain
actually work.
ServerSide Trust: SSRF, LFI and RFI
ServerSide Request Forgery (SSRF) turns the application's own server into your proxy, aimed at
infrastructure only that server can reach. Cloudflavored SSRF challenges have become the
default in modern competitions: a fetch this URL feature gets pointed at a cloud metadata
endpoint, temporary credentials come back and those credentials unlock the actual flag sitting in
an internal service. Filterbypass variants add a second layer; obvious internal ranges are
blocked, so you are reaching for DNS rebinding, open redirects, or alternate IP encodings to
land the same request anyway.