
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.

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

Por lo que nuestra solicitud final quedaría de la siguiente manera:
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=testPero para poder enviar nuestra solicitud y desincronizar, es necesario inflar o agregar bits extra. Teniendo finalmente nuestra solicitud de la siguiente manera.
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=testLuego 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.

Agregaremos 50 y procederemos a enviar.
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=testObservamos la cabecera que es necesaria para poder enviar o acceder a /admin y que debemos considerar en nuestra solicitud.

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

Procederemos a enviar la solicitud a la ruta /admin

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

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

Al enviar podemos observar que este solicitud se ejecuto correctamente.

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