SameSite Strict bypass via client-side redirect

Si se configura una cookie con el SameSite=Strictatributo, los navegadores no la incluirán en ninguna solicitud entre sitios. Es posible que pueda evitar esta limitación si encuentra un gadget que genere una solicitud secundaria dentro del mismo sitio.

Un posible gadget es una redirección del lado del cliente que construye dinámicamente el objetivo de la redirección utilizando información controlable por el atacante, como parámetros de URL.

En lo que respecta a los navegadores, estas redirecciones del lado del cliente no son realmente redirecciones; la solicitud resultante se trata como una solicitud normal e independiente. Y lo que es más importante, se trata de una petición al mismo sitio y, como tal, incluirá todas las cookies relacionadas con el sitio, independientemente de las restricciones que existan.

Si puedes manipular este gadget para provocar una petición secundaria maliciosa, esto puede permitirte eludir completamente cualquier restricción de cookies SameSite.

Tenga en cuenta que el ataque equivalente no es posible con redirecciones del lado del servidor. En este caso, los navegadores reconocen que la petición de seguir la redirección resultó de una petición cross-site inicialmente, por lo que todavía aplican las restricciones de cookies apropiadas.

LAB

20250714001042.png

En el perfil del usuario tendremos un apartado para actualizar el email del usuario

20250714001352.png

Además, podemos observar que el valor de SameSite es de Strict, por lo que explotar un CSRF no será fácil.

20250714001450.png

Investigando un poco en sitio web encontramos que al hacer un comentario, este hace una redirección al post que se comentó.

20250714004030.png
20250714004133.png

Haciendo unas pruebas y agregar /../../my-account este me redirige a my-account por lo que usaremos esto para mandar nuestra petición de cambio email

20250714004549.png

Además, interceptamos la petición y cambiamos el método de POST a GET y enviamos, en este podemos ver que acepta nuestra petición.

20250714004621.png

Entonces podemos empezar a construir nuestro POC

Luego de construir el POC probé y no conseguí cambiar el correo, esto debido a que & no estaba en urlencode, por lo que lo convertí a %26 y me quedo el POC final de la siguiente manera:

Este si funciono, por lo que termine de construir el POC de la siguiente manera:

Guarde el exploit y haga clic en "Deliver to victim" para resolver el laboratorio.

Last updated