← Back to list

HTTP Request Smuggling: Basic CL.TE Vulnerability

Learn how CL.TE request smuggling works, why it’s dangerous, and how attackers exploit server parsing differences.

Bash Overflow in InfoSec Write-ups · 2025-08-14 15:31 · 0 claps · 4.4 min read paywalled
#http-request-smuggling #clte-vulnerability #chunked-transfer-encoding #request-smuggling #bug-bounty
Open on Medium ↗
Wiki topics: 💻 · Programming 🔒 · Cybersecurity

HTTP Request Smuggling: Basic CL.TE Vulnerability

Learn how CL.TE request smuggling works, why it’s dangerous, and how attackers exploit server parsing differences.

🔓 **Free Link**

HTTP Request Smuggling: Basic CL.TE Vulnerability

HTTP Request Smuggling: Basic CL.TE Vulnerability

Disclaimer: The techniques described in this document are intended solely for ethical use and educational purposes. Unauthorized use of these methods outside approved environments is strictly prohibited, as it is illegal, unethical, and may lead to severe consequences.

It is crucial to act responsibly, comply with all applicable laws, and adhere to established ethical guidelines. Any activity that exploits security vulnerabilities or compromises the safety, privacy, or integrity of others is strictly forbidden.

Table of Contents

  1. **Summary of the Vulnerability**
  2. **Steps to Reproduce & Proof of Concept (PoC)**
  3. **Impact**

Summary of the Vulnerability

In the CL.TE (Content-Length / Transfer-Encoding) HTTP request smuggling scenario, the security issue arises when two servers in a request chain (a front-end and a back-end) interpret the boundaries of an HTTP request differently.

In the referenced lab setup, the front-end server does not support chunked transfer encoding and strictly accepts only **GET or `POST** requests. The back-end, however, does support chunked encoding. This difference in behavior opens the door for request smuggling: by crafting an HTTP request that contains bothContent-Length` and **Transfer-Encoding** headers, the attacker can cause the two servers to disagree on where one request ends and the next begins.

In this lab’s case, the attacker’s goal is to smuggle a malicious request to the back-end so that the next request it processes appears to use the method **GPOST** — effectively altering the semantics of the request pipeline. This is achieved by manipulating how each server parses the HTTP body and headers, exploiting their inconsistent interpretations.

Even though the lab supports HTTP/2, this attack relies on quirks specific to HTTP/1 parsing, so the solution must be performed in HTTP/1 mode.

Steps to Reproduce & Proof of Concept (PoC)

① Set Up and Observe the Target

  • Open the lab environment in Burp Suite.
  • Look at the HTTP history for the **GET /** request.
  • Right-click → Send to Repeater for manual testing.

② Downgrade from HTTP/2 to HTTP/1

The lab description notes that the vulnerability is exploitable only in HTTP/1.

  • In Repeater, open the Request attributes section in the Inspector panel.
  • Change the protocol from HTTP/2 to HTTP/1.

③ Create Two Requests

  • Change the **GET request to `POST**.`
  • Right-click → Change request method.

We’ll use two requests:

  • Request 1: The smuggling payload.
  • Request 2: A normal request that will be impacted by the smuggle.

To organize:

  • Right-click Request 1 → Add tab to group → New tab group.
  • Tick both Request 1 and Request 2.
  • Click Create to group them together.

④ Configure the Group to Send Sequentially

  • Change the drop-down from Send to Send group in sequence (separate connections). This ensures that Request 1 smuggles data into the connection before Request 2 runs, affecting how the back-end processes it.

⑤ Test the Smuggle

Please refer to this URL before conducting the attack:

https://portswigger.net/web-security/request-smuggling#cl-te-vulnerabilities

  • In Request 1, add both **Transfer-Encoding: chunked and `Connection: keep-alive`** headers.
  • Add an extra HTTP request inside the body (this is the smuggled payload).
  • Send the group.

You’ll see:

  • Request 1 returns **200 OK**.
  • Request 2 returns an unexpected response — a clear sign that smuggling worked.

⑥ About Content-Length

In Burp Suite, you don’t have to manually calculate the **Content-Length**. It updates automatically based on the request body.

In this case based on the CL.TE vulnerability. However, if the lab is vulnerable to the TE.CL, then we need to specify manually for the **Content-Length**.

⑦ Build the Final Attack

The lab’s objective is to trick the back-end into reading **GPOST** as the next request’s method.

  • In the smuggled request body, change **SMUGGLED to just `G`**.
  • Send the group.

You’ll see:

  • Request 1 → **200 OK**.
  • Request 2 → **403 Forbidden with the message "Unrecognized method GPOST"**.

⑧ Confirm the Lab Is Solved

Switch back to the browser tab with the lab, it will now display “Lab solved”, confirming that the smuggling attack successfully altered how the back-end parsed the next request.

Impact

  • Bypassing Security Controls Smuggling allows attackers to bypass these controls entirely, sending dangerous requests directly to the back-end.
  • Hijacking User Sessions If a smuggled request is timed so that a victim’s request is processed immediately afterward, attackers can steal cookies, tokens, or sensitive data.

📢 Enjoyed this post? Stay connected! If you found this article helpful or insightful, consider following me for more:

🙏Your support is appreciated.

[embed]Latest Cybersecurity News, Vulnerabilities, and Technical Analysis Stay updated with the latest cybersecurity news, discover vulnerabilities, and explore technical analysis in our lab…bashoverflow.com


메타데이터
post_id
2cadaa2d9640
slug
http-request-smuggling-basic-cl-te-vulnerability-2cadaa2d9640
url
https://infosecwriteups.com/http-request-smuggling-basic-cl-te-vulnerability-2cadaa2d9640
canonical_url
https://infosecwriteups.com/http-request-smuggling-basic-cl-te-vulnerability-2cadaa2d9640
author_url
https://medium.com/@bashoverflow
status
ok
fetched_at
2026-08-08 20:49:04