Tools & Prevention
Tools of the Trade
HTTP Request Smuggler (Burp Extension)
The same Burp extension used for HTTP/1.1 smuggling works for HTTP/2.
CL.0 Vulnerability Scanning
What is CL.0?
Another name for H2.CL vulnerability where:
Content-Length: 0is setRequest body contains only the smuggled request
Running the Scan
Send any HTTP/2 request to Repeater:
GET /index.php?param1=HelloWorld HTTP/2
Host: http2.htbRight-click β Extensions β HTTP Request Smuggler β CL.0
Leave default settings, press Enter
View results in Extensions β Installed β HTTP Request Smuggler β Output
Example Output
Verifying the Finding
Request 1 (Smuggling):
Request 2 (Probe):
Expected Results
Request 1
200 OK (normal index)
Request 2
405 Method Not Allowed
405 on Request 2 = Vulnerability confirmed!
Verification Steps
Create tab group in Burp Repeater
Uncheck "Update Content-Length" for first request
Send via separate TCP connections (to prove cross-user impact)
Check for different response on second request
HTTP/2 Prevention
Root Cause
HTTP/2 downgrading is the primary cause of these vulnerabilities.
Prevention Strategies
1. End-to-End HTTP/2
2. Disable HTTP/1.1 Fallback
3. Proper Header Validation
4. Update Software
Configuration Examples
Nginx (Force HTTP/2 to Backend)
HAProxy
Summary
HTTP Request Smuggler
Automated CL.0/H2.CL detection
Burp Repeater
Manual verification
Tab Groups
Sequential request testing
Prevention Priority
π HTTP/2 end-to-end - Eliminate downgrading
β Validate headers - CL must match body
π« Reject TE in HTTP/2 - Per RFC
π Validate characters - No CR/LF/NUL in headers
References
Last updated