CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

jwt

JSON Web Token attacks — algorithm confusion (alg=none, HS256↔RS256), kid header injection, JWKS spoofing, weak HMAC secret cracking, signature stripping.

Quality

79%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

Fix and improve this skill with Tessl

tessl review fix ./packages/decepticon/decepticon/skills/standard/exploit/web/jwt/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, dense reference-style skill: concrete tooling commands, executable payloads, a sequenced PoC workflow with a confirmation step, and well-organized sections. All dimensions sit just below top because of minor trimmable content, a few non-executable hints, and no explicit feedback loop for failed attacks.

DimensionReasoningScore

Conciseness

Telegraphic, dense prose where nearly every token carries attack-specific value (URL-filter bypass tricks, hashcat mode 16500, library-specific quirks like node-jsonwebtoken's jwk acceptance). Minor trimmable spots — the opening anatomy framing, acronym glosses, and the dated 'Known exemplars' section (time-sensitive dates not placed in an old-patterns section) — place it at 'efficient; minor instances of over-explanation' rather than lean and untouchable.

4 / 5

Actionability

Concrete, mostly copy-paste-ready commands throughout: 'jwt_tool $JWT -X a', 'jwt_tool $JWT -X k -pk public.pem', 'curl -s https://target/.well-known/jwks.json | jq -r', 'hashcat -m 16500 jwt.txt /usr/share/wordlists/rockyou.txt', plus ready-made JSON payloads. Minor gaps — jwt-cracker is named without an invocation, '<attacker_pub>' is a placeholder, and 'redirect chains via target's open-redirect' is a hint without steps — so it is not fully executable.

4 / 5

Workflow Clarity

Section 4 gives a clear 4-step PoC sequence with an explicit confirmation checkpoint ('For positive results, replay manually via Burp Repeater to confirm'). This is analysis/testing rather than a destructive or batch operation, so the cap-at-3 rule does not apply; it falls short of 5 only because there is no explicit failure/retry loop.

4 / 5

Progressive Disclosure

Well-organized numbered sections in a single self-contained file, with no bundle files to navigate. It exceeds 50 lines so the simple-skill 5-exception does not apply, and the severity table and exemplars could arguably live in a reference file — 'good structure; minor organization gaps' rather than a fully appropriate split.

4 / 5

Total

16

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A highly specific, distinctive description that clearly communicates the skill's capabilities through named attack techniques. Its main weakness is the absence of any explicit 'when to use' trigger guidance in the description field itself, plus missing the ubiquitous 'JWT' abbreviation.

Suggestions

Add an explicit trigger clause to the description, e.g. 'Use when auditing JWTs, bearer tokens, or authentication flows where alg, kid, jku, x5u, or JWKS parameters appear.'

Include the abbreviation 'JWT' and natural phrases like 'bearer token' in the description so it matches how users actually refer to the skill.

Fold the when_to_use metadata keywords into the description itself so trigger matching works regardless of how the skill index surfaces metadata.

DimensionReasoningScore

Specificity

The description names the domain and enumerates five distinct concrete techniques — 'algorithm confusion (alg=none, HS256↔RS256), kid header injection, JWKS spoofing, weak HMAC secret cracking, signature stripping' — matching the anchor 'lists multiple specific concrete actions; comprehensive coverage'. Coverage of the JWT attack surface is complete rather than having minor gaps, so it is not the level below.

5 / 5

Completeness

A clear 'what' is present (the enumerated attack techniques) but the description contains no 'Use when...' clause or equivalent trigger guidance — the when_to_use keywords live in separate metadata, not the description field. Per the guidelines a missing 'when' clause caps completeness at 3.

3 / 5

Trigger Term Quality

Good keyword coverage with specific terms ('JSON Web Token', 'alg=none', 'HS256↔RS256', 'kid', 'JWKS', 'HMAC', 'signature'), but the most natural user phrasings 'JWT' and 'bearer token' are absent from the description field — fits 'good keyword coverage; a few natural terms missing' rather than comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

A clear niche (JWT-specific attacks) with technique-distinctive triggers like 'alg=none', 'kid header injection', and 'JWKS spoofing'; minimal risk of triggering for an unrelated skill, matching the 'clear niche with distinct triggers' anchor.

5 / 5

Total

17

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository

PurpleAILAB/Decepticon

Path

packages/decepticon/decepticon/skills/standard/exploit/web/jwt/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.