Approach guide

How to solve this CTF

No flags here. Just how to think about each track and the tells that mean you are close.

Mindset

Every challenge promises one thing and is built another way. Your job is the gap.

The loop

  1. Observe. Read every string. Open dev tools.
  2. Predict. What rule would have to break to leak?
  3. Probe. Send one input that forces the answer.
  4. Diff. The delta from your prediction is the signal.
  5. Escalate. Stack payloads. Try a different surface.

Flag format

Flags look like KA{...}. The server also accepts the inner value, plus base64 and hex of either form.

By track

What each tests, how to attack it, and what to watch for.

Track 01

Prompt Injection

An LLM guards a value in layers. Surface an encoded artifact, decode it, then replay it.

How to approach

  • The flag is never in the prompt. Dumping instructions will not leak it.
  • Probe a layer the model will discuss: a boot block, a rehearsal scene, a shift handover.
  • Expect an encoded seal, cue, or macro. Decode it offline (base64, ROT13).
  • Blunt and direct asks are refused. Build a frame and be patient.
  • Replay the decoded value, in frame, to earn the reveal.

What to watch for

  • An encoded string in the reply. That is your unlock, decode it.
  • Pieces that arrive across turns. Collect and reassemble them.
  • A warned-about phrase names the gate.

Track 02

Agent Workflow

The agent calls tools, reads files, fetches URLs. Each step is a place to inject.

How to approach

  • Enumerate first. Handles, tickets, schemas, and entries are hidden until you list them.
  • One tool call discovers, the next one exploits. Copy ids forward.
  • Tool output is trusted. Your direct message is not.
  • Some chains transform a value between steps. Read the rule.
  • Hijack the summary. The agent acts on what it summarized.

What to watch for

  • A tool call that echoes your text. That is the foothold.
  • Arguments built from prior output. Redirect that chain.
  • An unprompted "I will now do X". You just steered it.

Track 03

Hidden API

The UI shows one surface. The server has more. Something exists but is never linked.

How to approach

  • Read the source and network tab. Note every endpoint and param.
  • Try pollution: dupes, casing, versions, ?debug=1, ?role=admin.
  • Probe auth. Cookies, headers, signed URLs. Real vs. decoration.
  • Diff authed vs. unauthed. Routes outlive their gates.
  • Read 4xx messages. They name fields. Send them.

What to watch for

  • Errors naming fields you did not send.
  • A 403 where a 404 belongs. The resource is real.
  • Responses with more data than the UI renders.

Last reminder

If you are stuck, re-read the screen

The mission brief lists the layers. The response payloads leak the next value. The activity feed lists tools to steer. Read them again.