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: 0 is set

  • Request body contains only the smuggled request

Running the Scan

  1. Send any HTTP/2 request to Repeater:

GET /index.php?param1=HelloWorld HTTP/2
Host: http2.htb
  1. Right-click β†’ Extensions β†’ HTTP Request Smuggler β†’ CL.0

  2. Leave default settings, press Enter

  3. View results in Extensions β†’ Installed β†’ HTTP Request Smuggler β†’ Output

Example Output

Verifying the Finding

Request 1 (Smuggling):

Request 2 (Probe):

Expected Results

Request
Response

Request 1

200 OK (normal index)

Request 2

405 Method Not Allowed

405 on Request 2 = Vulnerability confirmed!


Verification Steps

  1. Create tab group in Burp Repeater

  2. Uncheck "Update Content-Length" for first request

  3. Send via separate TCP connections (to prove cross-user impact)

  4. 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

Tool
Purpose

HTTP Request Smuggler

Automated CL.0/H2.CL detection

Burp Repeater

Manual verification

Tab Groups

Sequential request testing

Prevention Priority

  1. πŸ”„ HTTP/2 end-to-end - Eliminate downgrading

  2. βœ… Validate headers - CL must match body

  3. 🚫 Reject TE in HTTP/2 - Per RFC

  4. πŸ” Validate characters - No CR/LF/NUL in headers


References

Last updated