Skip to content

Guide · Agent skill

How to use the JWT Claim Confusion agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The competition-jwt-claim-confusion skill gives an AI agent a structured checklist for tracing how a JSON Web Token (a signed login token used by many websites and APIs) is parsed, which key is chosen, and which claims are trusted to grant access. It is written for capture-the-flag (CTF) training sandboxes and only runs after its companion skill, ctf-sandbox-orchestrator, has set up the sandbox assumptions. This guide explains what the skill does, how to install it, how to trigger it, and what to watch for.

JWT Claim Confusion Analysiszhaoxuya520/reverse-skill · MIT

Quick start

  1. 1Download the ZIP. Download the skill ZIP from this page and unzip it so the folder contains SKILL.md, references/ and agents/.
  2. 2Place the folder. Move the competition-jwt-claim-confusion folder into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder.
  3. 3Or upload in the Claude apps. Alternatively, open Settings, go to Capabilities, then Skills, and upload the skill.
  4. 4Install the companion skill. Make sure ctf-sandbox-orchestrator is installed and active, since this skill must not run standalone.
  5. 5Ask a natural question. Describe the token, the target service and what you want to know, such as how a role claim becomes access.

What is an agent skill, and what does this one do?

An agent skill is a folder of instructions that an AI agent loads when a request matches the skill's description. This skill is a downstream specialization: it covers JWT, JWS and JWE validation paths, header parsing, key selection, claim acceptance, audience and issuer checks, role derivation, and token-to-identity confusion bugs.

The skill asks the agent to split the token path into parse, key lookup, signature or decryption, claim validation, and final acceptance. The agent records header fields and claims before changing anything, then reproduces the smallest token-to-acceptance flow that shows the decisive problem.

  • Records header fields such as alg, kid, typ, cty and jku when present
  • Notes where keys come from: static config, JWKS, local file, cache, or dynamic lookup
  • Shows how subject, audience, issuer, tenant, scope or role claims become app session or privilege
  • Separates a token that parses correctly from one that is actually authorized

Install the skill from the ZIP or the Claude apps

Download the ZIP for the skill from this page and unzip it. The skill folder contains SKILL.md, references/jwt-claim-confusion.md and agents/openai.yaml. Place the folder in one of two locations: your personal skills directory at ~/.claude/skills/, or a project's .claude/skills/ directory if you want the skill available only inside that project.

If you use the Claude apps instead, open Settings, go to Capabilities, then Skills, and upload the skill there.

  • Personal install: ~/.claude/skills/
  • Project install: the .claude/skills/ folder inside your project
  • Claude apps: Settings → Capabilities → Skills, then upload
~/.claude/skills/competition-jwt-claim-confusion/ SKILL.md references/jwt-claim-confusion.md agents/openai.yaml

Install the required companion skill first

This skill depends on ctf-sandbox-orchestrator. Its own instructions say to return to the orchestrator first if sandbox assumptions, node ownership and evidence priorities have not been established. Do not use it on its own.

The skill also needs an agent runtime that can read its reference file, and access to the sandbox target and any token samples you provide.

  • Install and activate ctf-sandbox-orchestrator before this skill
  • Confirm the sandbox target and the token samples you plan to use are yours to test

How do you trigger the skill with natural requests?

You do not need a special command. The skill loads when your request matches its description. Typical triggers include asking the agent to inspect JWT headers or claims, look up keys, examine kid handling or alg confusion, check audience or issuer validation, review role claims, or explain how a token becomes an accepted identity or privilege.

Once the orchestrator has routed the work here, state the token, the service and the question. The skill replies in Simplified Chinese unless you explicitly ask for English.

  • Inspect the header and claims of this sample token and list the alg and kid values
  • Explain how this token's role claim becomes admin access in the sandbox app
  • Check whether the audience and issuer claims are validated before the session is created
  • Trace where the signing key for this kid comes from

What output should you expect and what are the limits?

The agent works through a fixed chain: parser invoked, key source selected, signature or decryption performed, claims validated, and privilege accepted. It keeps raw headers, claims, the key source and the accepting service together, and aims for one minimal replayable sequence. If the task grows into a larger OAuth redirect chain, the skill says to hand back to a tighter OAuth skill.

The skill runs no scripts and makes no network calls. Its guidance is about analysis and reproduction in a sandbox, so you should only point it at systems you are authorised to test.

  • Runs scripts: no
  • Uses network: no
  • Keep test targets inside a sandbox or systems you have written authorization to test
  • Simple JWT decoding questions are better served by a lighter tool

What people use it for

  • Tracing whether a kid header value is used to select the right signing key in a CTF web challenge
  • Checking whether audience and issuer claims are validated before a session cookie is issued in a lab app
  • Explaining how a role or scope claim is mapped to admin rights in a training target
  • Reviewing JWT validation logic in your own application to confirm key handling and claim checks are correct

Frequently asked questions

Is the JWT Claim Confusion skill free to use?

The skill is published under the MIT licence, as listed on this page. The source does not mention pricing, so check the licence text in the download for the terms that apply.

What do I need to run the competition-jwt-claim-confusion skill?

You need an agent skill runtime that can read the skill's reference file, the companion ctf-sandbox-orchestrator skill, and access to the sandbox target and any token samples you supply. It runs no scripts and makes no network calls.

Where do I install an agent skill like this one?

Unzip the downloaded folder into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder. You can also upload it in the Claude apps under Settings, then Capabilities, then Skills.

Why does the skill not work on its own?

Its instructions state it is a downstream specialization of ctf-sandbox-orchestrator and should be used only after that skill has set sandbox assumptions and routed the task. If that has not happened, the agent is told to return to the orchestrator first.

Can I use this skill to test a live or third-party website?

No. The listing says it is not for testing live or third-party systems without written authorisation, because it is built to find and reproduce authentication bypasses. Limit it to lab sandboxes and systems you are authorised to test.

How is this different from a simple JWT decoder?

A decoder only shows a token's contents. This skill traces the full path from parsing through key selection and claim validation to the privilege the app grants, so it is aimed at validation logic. For plain decoding or general token questions, a lighter tool is enough.

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 a student practising CTF challenges in a lab, a security engineer reviewing JWT validation in systems you are authorised to test, or a developer checking your own audience, issuer and key handling. Pick something else if you only need to decode a token, or if you want to test live services without written permission. It also will not work properly unless ctf-sandbox-orchestrator is installed and active.

Download the skill