CtrlK
BlogDocsLog inGet started
Tessl Logo

exploit-ssti

Server-Side Template Injection (SSTI) — RCE through template engines. Covers Jinja2 (Python/Flask), Twig (PHP/Symfony), Freemarker (Java), ERB (Ruby), Razor (.NET). Includes engine fingerprinting, MRO chain construction, and filter bypass.

64

Quality

77%

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

Quality

Content

85%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 highly actionable, well-sequenced exploitation reference with strong feedback loops and copy-paste payloads, weakened only by its monolithic single-file structure that inlines content which could be progressively disclosed into per-engine reference files.

Suggestions

Split the per-engine deep-dives (Django context-processor map, blind/oracle sections) into one-level-deep reference files under references/ and link to them from a concise overview in SKILL.md.

Tighten the Django section's prose (e.g. the 'Critical: ... will NOT work' list) into a compact table to recover token budget.

Add a short 'Prerequisites / scope' note stating this targets authorized CTF/pentest contexts so the workflow's intent is explicit.

DimensionReasoningScore

Conciseness

Mostly lean, executable content that assumes Claude's competence (no generic 'what is a template engine' padding); a few prose-heavy stretches, notably the Django section, could be trimmed without losing actionability.

4 / 5

Actionability

Fully copy-paste-ready curl commands per engine, a runnable python3 subclass-enumeration snippet, and concrete payloads covering the common cases, with necessary placeholders (<TARGET>, <INDEX>) clearly marked.

5 / 5

Workflow Clarity

Clear detect→fingerprint→exploit sequencing per engine with explicit validation checkpoints and feedback loops: calibration steps, '3-strike pivot' rules, and decision flows for blind/oracle variants.

5 / 5

Progressive Disclosure

No bundle files exist and the skill is a single ~308-line document; section headers give reasonable navigation, but engine-specific deep-dives (e.g. the large Django block) are inlined rather than split into one-level-deep reference files.

3 / 5

Total

17

/

20

Passed

Description

70%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 specific, well-scoped description that names concrete capabilities and engines, but it omits an explicit 'Use when...' trigger clause, capping completeness at 3. Trigger-term coverage is strong though partly segregated into metadata.

Suggestions

Add an explicit 'Use when...' sentence to the description naming the trigger phrases (e.g., 'Use when exploiting server-side template injection, {{7*7}}/{{7*7}} probing, or template-engine RCE in Jinja2/Twig/Freemarker/ERB/Razor targets').

Fold the richest metadata when_to_use terms (Thymeleaf, Velocity, Smarty, Pebble, Mako) into the description so the trigger surface is visible without relying on metadata.

Optionally note blind-SSTI / info-disclosure outcomes to round out the capability list.

DimensionReasoningScore

Specificity

Lists several concrete actions ('engine fingerprinting', 'MRO chain construction', 'filter bypass', 'RCE through template engines') across five named engines, with only minor coverage gaps (no mention of blind SSTI or info-disclosure paths).

4 / 5

Completeness

The 'what' is clear and concrete, but there is no 'Use when...' clause or equivalent explicit trigger guidance in the description, which caps completeness at 3 per the rubric guideline.

3 / 5

Trigger Term Quality

Includes natural terms users would say ('SSTI', 'template injection', 'server side template', 'Jinja2', 'Twig', 'Freemarker', 'ERB', 'Razor') plus syntax markers, though a few common variants (Thymeleaf, Velocity, Smarty) sit only in metadata rather than the description itself.

4 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (SSTI across specific template engines) with distinct, specific triggers and minimal overlap risk with other skills.

5 / 5

Total

16

/

20

Passed

Validation

87%

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

Validation14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

relative_links

Relative link issues: 5 missing, 1 deeper-than-1-level

Warning

Total

14

/

16

Passed

Repository
PurpleAILAB/Decepticon
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.