CtrlK
BlogDocsLog inGet started
Tessl Logo

hunt-html-injection

Hunt HTML Injection — user-supplied input is rendered as raw HTML in the response without sanitisation, allowing an attacker to inject arbitrary HTML tags (but not necessarily JavaScript). Lower severity than XSS but enables phishing, UI manipulation, and credential harvesting via injected forms. Use when testing text-display surfaces (search results, profile fields, comments, error messages, feedback forms). For markup that executes JavaScript, escalate to hunt-xss.

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 ./skills/hunt-html-injection/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

An actionable, well-structured testing skill with concrete payloads and explicit proof/validation criteria. The main weakness is mild verbosity from re-explaining HTML injection/XSS basics and restating the proof criterion multiple times.

Suggestions

Trim the 'What is HTML Injection' and 'Distinguishing HTML Injection from XSS' sections to the non-obvious details only (dangling-markup and email-context vectors) since Claude already knows what HTML injection and XSS are.

State the proof criterion (literal '<' angle brackets vs '&lt;') once in the Proof section and reference it elsewhere rather than restating it in the intro, Autonomous Testing Priority, and Proof sections.

Formalise the stored-injection workflow as an explicit numbered sequence (inject at storage endpoint → GET display page → check for unescaped tags) to match the reflected-flow clarity.

DimensionReasoningScore

Conciseness

Mostly efficient with novel attacker-technique detail, but the 'What is HTML Injection' and 'Distinguishing HTML Injection from XSS' sections re-explain concepts Claude already knows, and the proof criterion is restated across three sections.

3 / 5

Actionability

Provides copy-paste-ready payloads ('"><img src=x onerror=alert(91234)>', dangling-markup vector) and a concrete proof criterion (literal '<' vs '&lt;'), with only the CANARY placeholder needing substitution.

4 / 5

Workflow Clarity

Clear sequence (Pattern 1 → alternate tag types → stored variant → escalate to XSS) with an explicit validation checkpoint ('Unescaped angle brackets in the response = confirmed injection') and an escalation feedback loop; minor gaps in formalising the stored-injection retrieve step.

4 / 5

Progressive Disclosure

Well-organised self-contained sections with no external references needed; slightly above the simple-skill line with some redundancy that could be tightened, keeping it just below a 5.

4 / 5

Total

15

/

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, third-person description that cleanly states what the skill hunts, when to invoke it, and how it differs from XSS. Minor specificity gains would come from naming the detection action more concretely.

DimensionReasoningScore

Specificity

Names the domain and several concrete impacts ('phishing, UI manipulation, and credential harvesting via injected forms', 'inject arbitrary HTML tags') plus specific target surfaces, with only minor gaps in naming the hunting action itself.

4 / 5

Completeness

Explicitly answers both what ('user-supplied input is rendered as raw HTML ... without sanitisation') and when ('Use when testing text-display surfaces (...)') with concrete trigger phrases.

5 / 5

Trigger Term Quality

Good natural-term coverage via 'testing text-display surfaces (search results, profile fields, comments, error messages, feedback forms)', with a few synonyms a user might phrase differently absent.

4 / 5

Distinctiveness Conflict Risk

Clear niche explicitly demarcated from XSS ('Lower severity than XSS', 'For markup that executes JavaScript, escalate to hunt-xss'), minimising wrong-skill triggering.

5 / 5

Total

18

/

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

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
elementalsouls/Claude-BugHunter
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.