Agent skill

Hunt Smuggling

by Encod3d-Sec in Encod3d-Sec/TORCH

HTTP request smuggling / desync hunting - CL.TE, TE.CL, TE.TE, CL.0, and HTTP/2 downgrade.

MITAuto-check passedSecurity

Install Hunt Smuggling

skills CLI
$ npx skills add Encod3d-Sec/TORCH --skill hunt-smuggling -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Encod3d-Sec/TORCH hunt-smuggling --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Encod3d-Sec/TORCH.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hunt/hunt-smuggling .claude/skills/hunt-smuggling && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
hunt-smuggling
GitHub stars
329
Token cost
~1.6k tokens
SKILL.md length
809 words
Files
1
Skills in repo
35
Repo updated
First seen
Licence
MIT

At a glance

HTTP request smuggling / desync hunting - CL.TE, TE.CL, TE.TE, CL.0, and HTTP/2 downgrade.

  • Works in 7 steps: Detect (timing, safe): send a… → Confirm (differential): smuggle a prefix… → TE.TE: obfuscate the header so one… → …
  • Security work in your project
  • SKILL.md covers Wiki, Attack surface signals, Methodology and Confirmation gate, plus 4 more sections
  • Calls python3

What it does

Hunt Smuggling is an agent skill from Encod3d-Sec/TORCH. HTTP request smuggling / desync hunting - CL.TE, TE.CL, TE.TE, CL.0, and HTTP/2 downgrade. Timing-based detection, differential confirmation, no-blind-claims. Wiki-first, FIND schema output.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Security. The repository describes itself as: Karpathy LLM based claude harness for PenetrationTesting / Bugbounty using obsidian. The licence is MIT.

When your agent uses it

  • Security work in your project

Example prompts

  • “/hunt-smuggling”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Detect (timing, safe): send a deliberately malformed TE/CL and watch for a back-end read timeout.
  2. Confirm (differential): smuggle a prefix that prepends to the victim's request, then issue a normal request and observe the poisoned…
  3. TE.TE: obfuscate the header so one server ignores it (Transfer-Encoding: xchunked, Transfer-Encoding, Transfer-Encoding:\tchunked, double…
  4. HTTP/2: test H2.CL / H2.TE (smuggle via H2 that downgrades to H1), and H2 request splitting via CRLF in header values.
  5. CL.0 / H2.0: back-end ignores body -> smuggle a full second request.
  6. Exploit: capture other users' requests (steal session cookies/headers), bypass front-end auth/path controls, cache-poison via smuggled…
  7. Distill when confirmed - reusable obfuscation or H2-desync variant, GENERIC, no client host: python3 scripts/wiki-stage.py --kind…

What it can do on your machine

Read from SKILL.md and the folder at commit d21b6c9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Hunt Smuggling loads about 1.6k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 809 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~51
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Encod3d-Sec/TORCH at commit d21b6c9, republished under its MIT licence (© Encod3d-Sec). 809 words, ~1,648 tokens.

Download SKILL.mdSave it as .claude/skills/hunt-smuggling/SKILL.md (or your agent's skills folder).
name
hunt-smuggling
description
HTTP request smuggling / desync hunting - CL.TE, TE.CL, TE.TE, CL.0, and HTTP/2 downgrade. Timing-based detection, differential confirmation, no-blind-claims. Wiki-first, FIND schema output.

Hunt: HTTP Request Smuggling

Assumes hunt-core for the scope gate, two-account rule, confirmation gate, enumeration limits, stop conditions, wiki protocol, FIND output, and Deadends. Do not re-derive any of that here.

Wiki

qmd_query "HTTP request smuggling desync CL.TE TE.CL TE.TE CL.0 HTTP/2 downgrade" via wiki-search MCP

Hub: [[web-moc]] (live web index). Primary page: [[http-request-smuggling]]. Payload arsenal: wiki/payloads/smuggling.md. Anchors: [[reverse-proxy-attacks]].

Attack surface signals

Smuggling needs a front-end that parses headers differently from the back-end: a CDN/WAF/LB in front of an origin, HTTP/1.1 keep-alive reused across users, or an HTTP/2 edge that downgrades to HTTP/1.1. Odds rise wherever both Transfer-Encoding and Content-Length are honored somewhere in the chain.

Rank before probing. Not all front-end/back-end pairs are equally likely:

  • HTTP/2 edge downgrading to HTTP/1.1 origin - H2.CL / H2.TE re-open a surface a hardened H1 front-end closes; highest yield on modern stacks.
  • Multiple hops in the chain - CDN -> WAF -> LB -> origin; each added parser is another chance for two of them to disagree.
  • Mismatched server software front vs back - e.g. a normalising proxy in front of a lenient app server, or vice versa.
  • Connection reuse to the back-end - a poisoned prefix only reaches a victim if the back-end pools/keep-alives the connection across requests.
  • Endpoints behind the edge auth/path filter - a desync that bypasses a front-end control is worth more than one that does not reach anything privileged.

Methodology

  1. Detect (timing, safe): send a deliberately malformed TE/CL and watch for a back-end read timeout.
# CL.TE probe (front-end uses CL, back-end uses TE) - delays if vulnerable
POST / HTTP/1.1
Content-Length: 4
Transfer-Encoding: chunked

1
A
0
# TE.CL probe (front-end TE, back-end CL)
Transfer-Encoding: chunked  +  Content-Length: 6 ; body: "0\r\n\r\nX"
  1. Confirm (differential): smuggle a prefix that prepends to the victim's request, then issue a normal request and observe the poisoned response (e.g. your G prepended to their path -> 404 on GET ...). See the confirmation gate below - a timing delay alone is never the finding.
  2. TE.TE: obfuscate the header so one server ignores it (Transfer-Encoding: xchunked, Transfer-Encoding, Transfer-Encoding:\tchunked, double TE).
  3. HTTP/2: test H2.CL / H2.TE (smuggle via H2 that downgrades to H1), and H2 request splitting via CRLF in header values.
  4. CL.0 / H2.0: back-end ignores body -> smuggle a full second request.
  5. Exploit: capture other users' requests (steal session cookies/headers), bypass front-end auth/path controls, cache-poison via smuggled response, escalate a reflected issue to stored.
  6. Distill when confirmed - reusable obfuscation or H2-desync variant, GENERIC, no client host: python3 scripts/wiki-stage.py --kind technique --slug <slug> --target-page techniques/web/http-request-smuggling.md

Drive it through Burp for operator visibility. Use Burp Repeater "Send group in sequence (single connection)" for the differential and the HTTP Request Smuggler extension for the sweep; push each load-bearing smuggled request into Repeater rather than leaving it in a curl loop.

Show full SKILL.md (404 more words)Show less

Confirmation gate

NOT confirmation: a single slow response or timing noise alone; a back-end read timeout by itself; a malformed request the front-end simply rejects; a delay you have not reproduced. A single timing observation is a signal to investigate, never proof of a desync.

IS confirmation: a reliable differential - a smuggled prefix that changes the next request's response (your own follow-up, or a captured victim request), reproduced on a clean connection; or a consistent timing delta reproduced across several runs and matched to a specific desync variant; or a DNS/HTTP hit to your unique Burp Collaborator / interactsh subdomain fired by a Collaborator-pointed smuggled request.

Blind / OOB desync. When you plant a Collaborator-pointed smuggled request, append a row to targets/<eng>/oob.md: | <token> | <sink url+param> | smuggling | <date> | waiting | | (columns: token | sink | class | planted | status | source; token = your unique Burp Collaborator / interactsh label). The recon-capture hook auto-correlates the incoming callback to flip the row to HIT and SessionStart surfaces HITs; a HIT row is the gate to scaffold the FIND. Do NOT claim a blind smuggling desync without the captured differential or a HIT row.

Chaining

A confirmed desync is a delivery primitive, not the endpoint. Chain it:

  • Smuggled response -> cache poisoning. Poison a shared cache with a smuggled response so it serves to every user; hand off to hunt-cache.
  • Request hijack. Capture the next user's full request (session cookie, auth header, CSRF token) by smuggling a prefix that appends their request to a body you read back.
  • Front-end control bypass -> stored. Smuggle past an edge auth/path filter to reach an internal endpoint, or escalate a reflected issue to stored via a poisoned response.

Evasion

If the direct CL/TE probe is normalised clean, the desync is often still there behind obfuscation - work the TE.TE variants (step 3) and the HTTP/2 downgrade (step 4), which re-opens the surface a hardened HTTP/1.1 front-end closes. Header casing, line-folding, and bare-CR/LF tricks beyond those live in wiki/payloads/smuggling.md.

Severity

ImpactTypical
Captured victim requests (session cookie / auth header) at scalecritical
Admin session theftcritical
Front-end auth / path-control bypasshigh
Cache poisoning via smuggled responsehigh
Reflected escalated to stored via poisoninghigh

Rated on demonstrated impact per hunt-core. A desync you can trigger but cannot yet show capturing a victim request or poisoning a response is a mechanism, not the severity ceiling.

Deadends

Append: - [ ] smuggling on <host> -- CL.TE/TE.CL/TE.TE/CL.0/H2 all clean
              (single normalising front-end, no timing delta or differential after a full sweep)

Record which variants you swept, not just that it failed. The next pass needs to know the boundary.

© Encod3d-Sec, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/hunt/hunt-smuggling of Encod3d-Sec/TORCH.

Open the folder on GitHubat commit d21b6c9

Compare with similar skills

Hunt Smuggling next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Hunt Smuggling compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hunt Smuggling this skillEncod3d-Sec/TORCH329—~1.6kAutomated safety check: PassMIT
Deepsec Documentation Guidevercel-labs/deepsec8.1k—~956Automated safety check: PassApache-2.0
Skill Scannergetsentry/skills1k4 repos~2.5kAutomated safety check: WarnApache-2.0
Serenity Aleabitoreddityan-labs/serenity-aleabitoreddit4811 repos~3.3kAutomated safety check: PassNone
Security Alert Triageelastic/agent-skills5921 repos~3.5kAutomated safety check: NotesApache-2.0
Shiro Attack CLISummerSec/ShiroAttack22.6k—~945Automated safety check: PassMIT

Similar skills

  • Deepsec Documentation Guide

    vercel-labs/deepsec

    Official

    Points the agent at deepsec's own docs to answer questions about initializing, configuring, resuming, scanning with and extending the vulnerability scanner.

    8.1k GitHub stars~956 tokensUpdated 11 days ago
    SecurityAuto-check passed
  • Skill Scanner

    getsentry/skills

    Official

    Scan agent skills for security issues. An agent skill from getsentry/skills.

    1k GitHub starsUsed in 4 repos~2.5k tokens
    SecurityAuto-check: warnings
  • Serenity Aleabitoreddit

    yan-labs/serenity-aleabitoreddit

    Apply trader Serenity's (@aleabitoreddit) AI/semiconductor supply-chain analytical lens to US-stock ideas and market judgment.

    481 GitHub starsUsed in 1 repo~3.3k tokens
    SecurityAuto-check passed
  • Security Alert Triage

    elastic/agent-skills

    Official

    Triage Elastic Security alerts — gather context, classify threats, create cases, and acknowledge.

    592 GitHub starsUsed in 1 repo~3.5k tokens
    SecurityAuto-check: notes
  • Shiro Attack CLI

    SummerSec/ShiroAttack2

    当用户要求利用、检测或测试 Apache Shiro rememberMe 反序列化漏洞 (Shiro-550, CVE-2016-4437) 时使用。触发词包括 "Shiro"、"rememberMe"、"shiro attack"、"CVE-2016-4437"、"Shiro-550"、"爆破 Shiro key"、"利用 Shiro"、"Shiro…

    2.6k GitHub stars~945 tokensUpdated 4 mo ago
    SecurityAuto-check passed
  • Cve Remediation

    rundeck/rundeck

    Verify if a CVE affects the project and remediate it. An agent skill from rundeck/rundeck.

    6.3k GitHub stars~2.9k tokensUpdated yesterday
    SecurityAuto-check passed

More from Encod3d-Sec/TORCH

All 35 skills in this repo
  • Runs a bug-bounty engagement through a script that tracks the current pass, builds a board of rows from recon and prints the next required action each turn.

    329 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Checks that the bb, pt and ctf workflow driver is set up correctly on a machine: vault content, skill symlinks, hooks, imports and a live smoke test, with fixes for failures.

    329 GitHub stars~611 tokensUpdated 1 mo ago
    Auto-check passed
  • Opens a visible Chromium window on a Kali VM so an operator can complete a manual login or CAPTCHA while the agent watches and acts through the chrome-devtools MCP.

    329 GitHub stars~1.2k tokensUpdated 1 mo ago
    Auto-check passed
  • CTF Campaign Driver

    Encod3d-Sec/TORCH

    Runs a capture-the-flag box from first scan to root with a driver script that tracks progress and prints the next action each turn.

    329 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Decides when a main pentesting agent should hand a fully-specified, mechanical exploit-compile or privilege-escalation step to a cheaper sub-agent, and how to specify that handoff safely.

    329 GitHub stars~1.6k tokensUpdated 1 mo ago
    Auto-check: notes
  • Adaptive Web Fuzzing

    Encod3d-Sec/TORCH

    Adaptive web fuzzing for pentests, bug bounty and CTF work: picks the smallest suitable SecLists wordlist per target surface and calibrates filters against soft-404 responses.

    329 GitHub stars~1.3k tokensUpdated 1 mo ago
    Auto-check passed

Categories

Questions about Hunt Smuggling

What does Hunt Smuggling do?

HTTP request smuggling / desync hunting - CL.TE, TE.CL, TE.TE, CL.0, and HTTP/2 downgrade. Hunt Smuggling is an agent skill from Encod3d-Sec/TORCH.0, and HTTP/2 downgrade.

When should I use Hunt Smuggling?

Hunt Smuggling fits situations like: security work in your project.

How do I install Hunt Smuggling in Claude Code?

Run `npx skills add Encod3d-Sec/TORCH --skill hunt-smuggling -a claude-code`. Or copy the skill folder (skills/hunt/hunt-smuggling in Encod3d-Sec/TORCH) into .claude/skills/hunt-smuggling in your project. Claude Code loads it when a task matches its description.

How do I install Hunt Smuggling in Codex?

Run `npx skills add Encod3d-Sec/TORCH --skill hunt-smuggling -a codex`. Or copy the skill folder (skills/hunt/hunt-smuggling in Encod3d-Sec/TORCH) into .agents/skills/hunt-smuggling in your project. Codex loads it when a task matches its description.

Can I use Hunt Smuggling in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Encod3d-Sec/TORCH --skill hunt-smuggling -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hunt-smuggling, .gemini/skills/hunt-smuggling, .github/skills/hunt-smuggling and .opencode/skills/hunt-smuggling in your project.

What does Hunt Smuggling need to run?

Going by SKILL.md and its folder, Hunt Smuggling needs the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Hunt Smuggling access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Hunt Smuggling safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Hunt Smuggling use?

Hunt Smuggling is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Hunt Smuggling use?

About 1.6k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Hunt Smuggling?

Skills that share tags, products or a category with Hunt Smuggling: Deepsec Documentation Guide (vercel-labs/deepsec, 8.1k stars), Skill Scanner (getsentry/skills, 1k stars), Serenity Aleabitoreddit (yan-labs/serenity-aleabitoreddit, 481 stars) and Security Alert Triage (elastic/agent-skills, 592 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Hunt Smuggling?

Encod3d-Sec (a GitHub user) maintains it in Encod3d-Sec/TORCH, which has 329 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on September 1, 2026.

Source: Encod3d-Sec/TORCH on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.