CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

ctf-web

Provides web exploitation techniques for CTF challenges. Use when the target is primarily an HTTP application, API, browser client, template engine, identity flow, or smart-contract frontend/backend surface, including XSS, SQLi, SSTI, SSRF, XXE, JWT, auth bypass, file upload, request smuggling, OAuth/OIDC, SAML, prototype pollution, and similar web bugs. Do not use it for native binary memory corruption, reverse engineering of standalone executables, disk or memory forensics, or pure cryptanalysis unless the web flaw is still the main path to the flag.

Quality

76%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./ctf-web/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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 a well-organized, highly actionable routing guide with strong command examples, explicit pivot rules to sibling skills, and a clear pattern map. Its weaknesses are duplicated PAT/field-notes content inflating token cost, missing validation and stop conditions in the batch brute-force workflow, and a reference index whose targets largely do not exist in the actual bundle.

Suggestions

Collapse the PayloadsAllTheThings on-demand block into one place (the Bulk payloads section), remove the duplicated graceful-degrade/clone text from Prerequisites, and trim per-reference blurbs to one line so detailed technique/CVE catalogs live only in the referenced files.

Add validation to the Login Brute-Force hard rules: a concrete success indicator to check per response (e.g., grep for a login-success string), a stop-on-first-hit condition, and an error-recovery step — this batch operation currently caps workflow clarity at 3.

Fix progressive disclosure against the real bundle: ensure every referenced file (sql-injection.md, server-side*.md, auth-*.md, pat-reference.md, scripts/install_ctf_tools.sh, etc.) actually ships alongside SKILL.md, and add a body reference to the existing scripts/async_fuzz.py so it is discoverable.

DimensionReasoningScore

Conciseness

Mostly lean command blocks and checklists, but the PayloadsAllTheThings on-demand/clone material is duplicated nearly verbatim in both Prerequisites and the Bulk payloads section, the Deep-Dive Notes section restates field-notes.md's contents already listed in Additional Resources, and several reference blurbs (tools-mcp.md, server-side-advanced-3/4.md) inline exhaustive technique/CVE catalogs that belong in the referenced files. Several padded sections keep it at "mostly efficient but could be tightened".

3 / 5

Actionability

Mostly executable, copy-paste-ready commands (sqlmap --batch --dbs, flask-unsign --unsign --wordlist, JWT decode pipeline, SSTI probes, webhook.site token create/retrieve curls) plus a concrete default wordlist path for brute-force rules. Minor gap: the "XSS payload with webhook callback" example embeds JavaScript ("+ document.cookie") inside a bash curl -d JSON string and is not executable as written, matching the "minor gaps" anchor rather than fully copy-paste ready.

4 / 5

Workflow Clarity

The First-Pass Workflow is a coherent five-step sequence with one explicit gate ("Build the smallest proof first... Save full exploit chaining for later"), but other checkpoints are implicit and there are no validate-fix-retry feedback loops. The Login Brute-Force section is a batch operation governed by hard rules yet includes no success-indicator or stop condition, so the batch-operation cap applies.

3 / 5

Progressive Disclosure

The index design is good — one-level-deep references with per-file descriptions plus a Fast Pattern Map routing table — but scored against the actual bundle almost none of the ~20 referenced .md files or scripts/install_ctf_tools.sh exist, and the one real bundle script (scripts/async_fuzz.py) is never referenced from the body. Dangling references plus an orphaned bundle file exceed "minor organization gaps", while the clear signaling keeps it above the buried-references anchors.

3 / 5

Total

13

/

20

Passed

Description

87%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 strong description in third-person voice with an explicit "Use when..." trigger clause, concrete target-type triggers, and unusually good negative boundary guidance against adjacent CTF skills. Its only weaknesses are a generic lead verb and a few missing common web-bug families (LFI, command injection, CSRF) in the trigger list.

DimensionReasoningScore

Specificity

Enumerates a dozen-plus concrete bug classes ("XSS, SQLi, SSTI, SSRF, XXE, JWT, auth bypass, file upload, request smuggling, OAuth/OIDC, SAML, prototype pollution") but the only action verb is the generic "Provides web exploitation techniques" — the listed items are capability domains rather than concrete actions, so it falls just short of the comprehensive-actions anchor.

4 / 5

Completeness

Explicitly answers both "what" ("Provides web exploitation techniques for CTF challenges") and "when" with concrete trigger phrases ("Use when the target is primarily an HTTP application, API, browser client, template engine, identity flow, or smart-contract frontend/backend surface"), plus explicit negative triggers; matches the top anchor exactly.

5 / 5

Trigger Term Quality

Contains many natural terms a CTF user would actually say (XSS, SQLi, SSRF, JWT, auth bypass, SAML, OAuth/OIDC, file upload, CTF, HTTP application, browser client), but several classic web-CTF families are missing (LFI/traversal, command injection/RCE, CSRF, deserialization), matching "good keyword coverage; a few natural terms missing" rather than comprehensive.

4 / 5

Distinctiveness Conflict Risk

Clear web-CTF niche with active disambiguation against sibling skills ("Do not use it for native binary memory corruption, reverse engineering of standalone executables, disk or memory forensics, or pure cryptanalysis unless the web flaw is still the main path to the flag"), giving minimal conflict risk.

5 / 5

Total

18

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

relative_links

Relative link issues: 36 missing

Warning

referenced_paths_exist

Referenced path issues: 2 missing

Warning

Total

13

/

16

Passed

Repository

ljagiello/ctf-skills

Path

ctf-web/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.