CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

crypto

Web crypto exploitation — padding-oracle (Vaudenay), AES-CBC bit-flipping / IV manipulation, AES-ECB pattern attacks (cut-and-paste, prefix/suffix recovery), HMAC bypass, hash-length extension, JWT alg confusion. Covers detection signals, working in-file Python harnesses (concurrent.futures, timeout=5, python3 -u, bounded request budget), and the confirm-oracle gate that must fire before iteration.

Quality

80%

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/crypto/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

77%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.

The body is an operationally rich, highly executable playbook with an exemplary gated workflow, explicit validation criteria, and feedback loops — clearly written by someone who has burned cycles on these challenges. Its weaknesses are inlined per-attack content that belongs in one-level-deep reference files and two sections (ECB cut-and-paste, prefix/suffix recovery) that stop at prose or comment steps instead of runnable code.

Suggestions

Split each attack family (padding oracle, ECB, HMAC/JWT) into references/<attack>.md files and keep SKILL.md to recognition signals, the confirm-oracle gate, and the anti-patterns/verification checklists, with clearly signaled links — this moves progressive disclosure from inline monolith to one-level-deep navigation.

Replace the ECB cut-and-paste comment list and the prefix/suffix recovery prose steps with runnable Python snippets (block splicing, block-size detection loop) matching the quality of the Vaudenay harness.

Trim the conceptual one-line intros that restate known crypto mechanics (CBC bit-flip propagation, ECB block equality, how Vaudenay works) and keep only the environment-specific guidance.

DimensionReasoningScore

Conciseness

The bulk of the body is hard-won operational knowledge Claude does not have — the confirm-oracle gate, '500s ARE valid-pad signals', the ~32 max_workers throttle threshold, atomic-pipeline and single-process discipline — and code blocks are dense with earning tokens. It sits at level 4 rather than 5 because brief conceptual intros restate known material (e.g. 'Decrypt a CBC ciphertext one byte at a time by manipulating the previous block's bytes...', the CBC bit-flipping mechanics explanation, and ECB pattern-detection prose) that could be trimmed.

4 / 5

Actionability

The confirm-oracle gate and the full Vaudenay harness are copy-paste-ready executable scripts with explicit placeholders, and the JWT forgery, bit-flip, and hashpump examples are runnable. It falls short of level 5 because the ECB cut-and-paste section is only a numbered comment list ('# 1. Register a user...') and prefix/suffix recovery is prose steps without runnable code — minor but real gaps in executable coverage.

4 / 5

Workflow Clarity

The sequence is explicit and gated: Step 0 key discovery → recognition signals → confirm-oracle gate with hard pass/fail criteria and a defined fail path ('hand back to recon') → per-attack walkthroughs → a dedicated Verification section with per-attack acceptance criteria. Feedback loops are explicit (garbage first block → 'KILL and re-derive'; oracle predicate re-check), and the Anti-Patterns section acts as a checklist, matching the score-5 anchor.

5 / 5

Progressive Disclosure

No bundle files exist and the entire skill is one ~330-line file. Section headers are clear, but five self-contained attack walkthroughs (Vaudenay ~70 lines, ECB, HMAC/JWT, anti-patterns, verification) are inlined where the main file could hold recognition signals plus the gate and point one level deep to per-attack reference files — matching level 3 ('content that should be separate is inline'). It does not reach level 4 because the inlining is more than a minor organization gap for a skill of this breadth.

3 / 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.

The description is highly specific and distinctive, enumerating the full family of web crypto attacks plus operational harness constraints. Its main weakness is the missing explicit 'Use when...' trigger clause inside the description field itself — the trigger terms are relegated to metadata.when_to_use.

Suggestions

Append an explicit 'Use when...' clause to the description (e.g. 'Use when a base64 cookie's decoded length is a multiple of 16, when invalid-padding errors differ from invalid-token errors, or when a JWT's alg header looks suspicious') so trigger guidance lives in the description field itself and completeness can rise above the cap of 3.

Fold a few natural-language synonyms from metadata.when_to_use (e.g. 'forged token', 'session cookie', 'MAC bypass') into the description to broaden trigger-term coverage from good to comprehensive.

Trim purely technical terms like '(Vaudenay)' from the lead phrase in favor of a natural user-facing trigger phrase, since users rarely say the researcher's name.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete attack techniques — "padding-oracle (Vaudenay), AES-CBC bit-flipping / IV manipulation, AES-ECB pattern attacks (cut-and-paste, prefix/suffix recovery), HMAC bypass, hash-length extension, JWT alg confusion" — giving comprehensive coverage of the domain, matching the score-5 anchor. It also specifies operational constraints ("timeout=5, python3 -u, bounded request budget"), so it clearly exceeds the 'several specific actions with minor gaps' level 4 anchor.

5 / 5

Completeness

The 'what' is clearly and concretely answered, but the description field contains no 'Use when...' clause or equivalent explicit trigger guidance, capping completeness at 3 per the judging guideline ('A missing Use when... clause should cap completeness at 3'). Trigger guidance exists only in the separate metadata.when_to_use field, so it does not reach level 4.

3 / 5

Trigger Term Quality

Natural keywords a user would say are present — "padding-oracle", "CBC", "JWT", "HMAC", "encrypted cookie", "hash-length extension" — but the description itself lacks synonyms and common variations of these terms, matching 'good keyword coverage; a few natural terms missing'. It does not reach level 5 because comprehensive synonym coverage (e.g. 'session cookie', 'forged token', 'MAC bypass') lives in metadata.when_to_use rather than the description.

4 / 5

Distinctiveness Conflict Risk

"Web crypto exploitation" with named attack families (Vaudenay padding oracle, ECB cut-and-paste, JWT alg confusion, hash-length extension) is a clear niche with distinct triggers and minimal overlap risk with other skills, matching the score-5 anchor. It is not generic or broad enough to fall to level 4.

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/crypto/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.