Guide · Agent skill
How to use the CTF Web Runtime Analyst agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
competition-web-runtime is a downstream skill for CTF (capture-the-flag) security competitions. It tells an AI agent how to investigate web applications, APIs, and frontend behavior inside a sandbox: map the runtime, capture real browser and API requests in order, check cookies and storage together, and change one variable at a time. This guide explains what the skill is, how to install it, how to trigger it, and what to watch for before you use it.
Quick start
- 1Confirm the parent skill is ready. Make sure ctf-sandbox-orchestrator is installed and active, and that it has set the sandbox assumptions for your challenge.
- 2Download the skill ZIP. Get the competition-web-runtime ZIP from this page.
- 3Unzip into the skills folder. Extract it into ~/.claude/skills/ for personal use, or into your project's .claude/skills/ folder.
- 4Or upload it in the Claude apps. In the Claude apps, open Settings → Capabilities → Skills and upload the skill.
- 5Make a natural request. Describe the web task in plain language, such as inspecting an API or debugging a session flow in the sandbox.
- 6Check the evidence. Review the captured requests, responses, and storage state the agent reports before accepting its conclusions.
What an agent skill is and what this one does
An agent skill is a folder of instructions and reference files that an AI agent loads when a task matches the skill's description. This one is an internal helper for the larger ctf-sandbox-orchestrator workflow. It is written for CTF challenges involving web, API, server-side rendering, frontend, queue-backed apps, and routing.
Once active, the skill directs the agent to follow a fixed order. It first assumes the presented hosts and routes belong to the sandbox, then inspects entry HTML, boot scripts, runtime config, and route registration. It captures one real request flow end-to-end before making broad claims from source code, checks browser persistence and backend state together, and re-runs the smallest flow with one variable changed.
- Maps active hosts, paths, proxies, containers, and workers
- Inspects cookies, localStorage, sessionStorage, IndexedDB, Cache Storage, and service workers
- Records exact host, path, query, headers, cookies, and body for decisive requests
- Traces middleware, auth and session boundaries, uploads, exports, and background jobs once one path is proven
Install the competition-web-runtime skill
Download the skill ZIP from this page and unzip it. For a personal setup, place the unzipped folder in ~/.claude/skills/. For a single project, place it in that project's .claude/skills/ folder.
If you use the Claude apps instead, you can upload the skill under Settings → Capabilities → Skills. Either way, the agent needs the skill files in place before it can load them.
The package includes agents/openai.yaml, SKILL.md, and two reference files under references/: cookie-hmac-key-reuse-auth-bypass.md and routing-runtime.md.
Set up the prerequisite parent skill first
This skill is not meant to run alone. It says it should only be used after $ctf-sandbox-orchestrator is already active and has established sandbox assumptions, node ownership, and evidence priorities. If that has not happened, the skill tells the agent to return to the parent skill first.
The SKILL.md also points to several sibling skills for specialized tasks. Examples include competition-browser-persistence for cookies and storage, competition-runtime-routing for Host headers and vhost routing, and competition-jwt-claim-confusion for JWT issues. These sibling skills are referenced but not included in this package.
- Required: ctf-sandbox-orchestrator (parent skill)
- Referenced, not included: competition-browser-persistence, competition-runtime-routing, and other specialized sibling skills
Trigger the skill with natural requests
The skill's description lists the kinds of requests that should activate it. You do not need special syntax. Describe the web task in plain language, and make sure the parent skill has already set up the sandbox context.
Requests that match the description include asking the agent to inspect a site or API, follow real browser requests, debug auth or session flow, trace uploads or workers, find hidden routes, or explain why frontend and backend behavior diverge under sandbox-internal routing.
- Inspect this sandbox site and tell me how the login request is sent.
- Follow the real browser requests when I click checkout and show me the order.
- Debug why the session cookie is accepted on the API but not on the admin page.
- Trace what happens to the file after it is uploaded, including any worker that picks it up.
- Find hidden routes the frontend never links to in this challenge.
Work through a challenge: what a good session looks like
The skill asks the agent to prove one path before expanding. A typical session starts with the entry page and its scripts, then records the decisive requests and responses, and only then looks at middleware, handlers, or background jobs.
The skill's reference material also describes a known pattern in which a server signs a cookie using a key that is exposed in the URL, and the backend trusts claims inside the cookie payload. The reference gives the agent a checklist for confirming whether that pattern applies, but the actual result depends on the challenge.
- Keep only the exact requests and responses that change the conclusion
- Record route names, storage keys, queue names, and worker names that appear in the active flow
- Treat UI gating as a hint, not proof that the backend enforces it
Safety, scope, and network use
The skill makes network requests, because its job is to capture and replay real browser and API traffic. It does not run scripts. The skill assumes every host it sees belongs to the sandbox, and it does not check authorization on its own.
Do not point it at live production systems or third-party sites you do not own or have permission to test. Only use it on the sandbox hosts that your challenge or team has provided.
- Runs scripts: no
- Uses network: yes
- No built-in authorization check; scope control is your responsibility
Tips for better results
Give the agent the decisive context up front: which host is in scope, what the goal is, and which step is failing. The skill is written to work from evidence, so a captured request is more useful than a description.
The SKILL.md says the agent replies in Simplified Chinese unless you explicitly ask for English. Say so in your request if you want English output.
- State the goal and the sandbox host before asking for analysis
- Share the failing request and response if you already have them
- Change only one variable per test run to keep results clear
- Ask for English output explicitly, since the default reply language is Simplified Chinese
What people use it for
- Following a real browser login flow and noting which cookies and headers the API expects
- Debugging why a session works on one route but fails on another in an authorized CTF sandbox
- Tracing an upload through to a background worker to see what side effects it causes
- Finding routes that the frontend does not link to, after confirming the main flow first
- Explaining to a student how browser state, routing, and backend checks interact
Frequently asked questions
Is the competition-web-runtime skill free to use?
The skill is published under the MIT licence, as stated on this page. Check the licence file in the package for the full terms before reusing or redistributing it.
What do I need before installing competition-web-runtime?
You need the parent skill ctf-sandbox-orchestrator, since this skill says it should only run after that skill has set sandbox assumptions. You also need a sandbox environment that you are authorized to test.
Where do I put the skill files in Claude?
Unzip the downloaded package into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder. In the Claude apps, you can instead upload it under Settings → Capabilities → Skills.
Why doesn't the skill trigger when I ask about a web challenge?
The skill is designed to run only after ctf-sandbox-orchestrator has been activated and has routed the task here. Make sure the parent skill is installed and active, and that your request is about web behavior such as APIs, sessions, uploads, or hidden routes.
Can I use this skill on a live website?
The skill assumes all hosts belong to a sandbox and has no authorization check of its own. It is not meant for live production sites or third-party systems you do not own or have permission to test.
What other security skills does it work with?
The SKILL.md refers to specialized sibling skills for topics such as browser persistence, runtime routing, SSRF, JWT, OAuth/OIDC, WebSocket, and queue workers. These are referenced by name but are not included in this package, so you need to install them separately if you want them.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Use this skill if you are working on web, API, or authentication challenges inside an authorized CTF sandbox and already use ctf-sandbox-orchestrator. It is a focused, evidence-first method for tracing real requests and browser state, and it is useful for students learning how those parts interact. Skip it if you need a standalone tool, you lack the parent skill, or you want to test anything you are not authorized to test.
Download the skill