CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

exploit-idor

Insecure Direct Object References (IDOR) — authorization bypass through predictable object references (sequential IDs, UUIDs, filenames, encoded IDs). Covers horizontal/vertical privilege escalation, ID enumeration, HTTP method tampering, and JWT sub claim manipulation.

Quality

74%

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

Quality

Content

71%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 exceptionally actionable — executable commands, explicit decision rules, and feedback loops for every branch of the attack workflow — with genuinely non-obvious domain knowledge (Snowflake/ObjectId decomposition, secret-cracking priority rules). Its weaknesses are duplicated Flask session-cracking sections that could be merged, and a monolithic single-file layout that would benefit from splitting the advanced reconstruction material into reference files.

Suggestions

Merge the "Flask Session Cookie — SECRET_KEY Brute-Force Fast-Path" section into "JWT / Session Signature Cracking" — both walk the same flask-unsign decode/unsign/sign workflow, and the duplication muddies which applies first.

Move the deterministic ID reconstruction material (Snowflake, MongoDB ObjectId) into a references/ file and keep a short trigger summary plus pointer in SKILL.md to cut context load.

Add a caution/validation note before the destructive HTTP method probes (curl -X DELETE / PATCH) since blind destructive requests can break challenge state.

DimensionReasoningScore

Conciseness

The body is dense with domain-specific, executable content and avoids generic explanations, but the Flask SECRET_KEY fast-path (lines 31–57) substantially duplicates the "JWT / Session Signature Cracking" section (flask-unsign decode/unsign/sign appears twice), and the post-forgery probe overlaps the endpoint-enumeration section — noticeably could be tightened, fitting anchor 3 rather than 4.

3 / 5

Actionability

Fully executable, copy-paste-ready bash throughout with concrete placeholders, worked examples (specific IDs, hex offsets, sample ObjectId), explicit fallback wordlists, and tool invocations covering the common cases — matches anchor 5.

5 / 5

Workflow Clarity

Clear sequencing with explicit decision tables ("Decision rule (MANDATORY)"), numbered decision flows, and feedback loops (crack fails → pivot to endpoint enumeration; confirm victim ID 200 → proceed). Minor gaps keep it below anchor 5: the two parallel Flask fast-path sections muddy ordering, and the destructive method probes (curl -X DELETE) lack a caution/validation note.

4 / 5

Progressive Disclosure

Section headers are well-organized and there are no broken or nested references, but this is a ~300-line single-file monolith with no bundle files, where the ObjectId reconstruction deep-dive and JWT cracking material plausibly belong in separate reference files — fits anchor 3 (content that should be separate is inline).

3 / 5

Total

15

/

20

Passed

Description

66%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 specific and domain-distinct with good natural trigger terms, but it lacks an explicit "Use when..." clause (trigger guidance lives in metadata.when_to_use instead) and under-represents several major capabilities covered by the body. Adding a when-to-use clause and mentioning session cracking / ObjectId reconstruction would round it out.

Suggestions

Append an explicit "Use when..." clause to the description (e.g., "Use when the challenge involves IDOR, authorization bypass, or broken access control on object references") instead of relying on metadata.when_to_use.

Mention the body's distinctive advanced capabilities — session-cookie/JWT secret recovery and deterministic ID reconstruction (timestamps, Snowflake, MongoDB ObjectId) — so the description covers what the skill actually does.

Include a few more natural synonyms in the description itself ("broken access control", "access control", "UUID guessing") rather than only in metadata.

DimensionReasoningScore

Specificity

Names the domain and lists several concrete covered techniques ("sequential IDs, UUIDs, filenames, encoded IDs", "horizontal/vertical privilege escalation, ID enumeration, HTTP method tampering, and JWT sub claim manipulation"), but omits significant capabilities present in the body (session-cookie secret cracking, MongoDB ObjectId reconstruction, endpoint enumeration), so coverage has more than minor gaps — below anchor 5, above anchor 3.

4 / 5

Completeness

The "what" is clear and concrete, but the description field contains no "Use when..." clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines (trigger guidance exists only in a separate metadata field).

3 / 5

Trigger Term Quality

Good natural terms a user would say: "IDOR", "authorization bypass", "privilege escalation", "ID enumeration", "sequential IDs", "UUIDs". A few common variations ("access control", "broken access control", "uuid guessing") appear only in metadata.when_to_use, not the description itself, keeping it below anchor 5.

4 / 5

Distinctiveness Conflict Risk

Clear niche (IDOR/authorization bypass) with distinct triggers and minimal conflict risk, but "JWT sub claim manipulation" and session-cookie topics create minor overlap with a dedicated JWT/session skill — anchor 4 rather than 5.

4 / 5

Total

15

/

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