HTTP request smuggling
Content-Length (CL)
POST / HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
param1=value1¶m2=value2Transfer-Encoding (TE)
POST / HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Transfer-Encoding: chunked
1d
param1=value1¶m2=value2
0
CL.TE
El proxy inverso utiliza el encabezado HTTP Content-Length (CL), el servidor web utiliza el encabezado HTTP Transfer-Encoding (TE).
Ejemplo de identificación donde la respuesta correspondiente al segundo request sea un 405 Method Not Allowed podría revelar que es vulnerable.
Ejemplo de explotación general.
Ejemplo de explotación para obtener acceso a una ruta interna.
Ejemplo de explotación para reflected XSS en HTTP header.
TE.TE
Ofuscar el encabezado HTTP Transfer-Encoding (TE) en uno de los componentes para provocar una vulnerabilidad de CL.TE o TE.CL.
TE.CL
El proxy inverso utiliza el encabezado HTTP Transfer-Encoding (TE), el servidor web utiliza el encabezado HTTP Content-Length (CL).
Ejemplo de identificación donde la respuesta correspondiente al segundo request sea un 400 Bad Request podría revelar que es vulnerable.
Ejemplo de explotación general (GET).
0x2a = 42 bytes
Ejemplo de explotación general (POST).
0x83 = 131 bytes
Ejemplo de explotación para obtener acceso a una ruta interna.
0x2b = 43 bytes
HTTP/2 downgrading
El proxy inverso utiliza HTTP/2, mientras que el servidor web utiliza HTTP/1.1.
H2.CL / CL.0
El proxy inverso no valida correctamente que el encabezado HTTP Content-Length (CL) proporcionado sea correcto y, en su lugar, reescribe la solicitud a HTTP/1.1 utilizando el encabezado HTTP Content-Length (CL) defectuoso.
Última actualización
¿Te fue útil?