Introducción a Técnica TE.CL
TE.CL significa Transfer-Encoding/Content-Length. Esta técnica es la contraria del método CL.TE. En el acercamiento TE.CL, la discrepancia entre la interpretación del header es invertida porque el front usa TE y el back CL.
La técnica TE.CL surge cuando el proxy prioriza el header Transfer-Encoding mientras que el back prioriza el header Content-Length.

Ejemplo: Si un atacante manda una petición con ambos headers, el servidor frontend o proxy puede interpretar la petición basándose en el header Transfer-Encoding, mientras que el servidor backend puede confiar en el header Content-Length.
Explotar TE.CL para Request Smuggling
Para explotar la técnica TE.CL, un atacante craftea una petición especialmente diseñada que incluye ambos headers, intentando crear ambigüedad en cómo el front y el back interpretan la petición.
Por ejemplo, un atacante manda una petición así:
POST / HTTP/1.1 Host: example.com Content-Length: 4 Transfer-Encoding: chunked 78 POST /update HTTP/1.1 Host: example.com Content-Type: application/x-www-form-urlencoded Content-Length: 15 isadmin=true 0
En el payload de arriba, el front ve el header Transfer-Encoding: chunked y procesa la petición como chunked. El 78 (hexadecimal para 120), indica que los siguientes 120 bytes son el cuerpo. El front considera todo hasta el 0 (que indica el final del chunk) como parte del body de la primera petición.
El back, sin embargo, usa el header CL, que es 4. Procesa sólo los primeros 4 bytes de la petición, no incluyendo la petición contrabandeada POST /update. La parte restante será interpretada como una petición separada.
La petición contrabandeada es procesada por el backend como si fuera legítima. Esta petición incluye isadmin=true, que podría potencialmente elevar los privilegios del atacante.
