Blog/SSRF with filter bypass via open redirection vulnerability
SSRF with filter bypass via open redirection vulnerability
Portswigger › Portswigger Labs › SSRF

Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio tiene una función de verificación de stock que obtiene datos de un sistema interno. Para resolver el laboratorio, debemos cambiar la URL de verificación de stock para acceder a la interfaz de administración en http://192.168.0.12:8080/admin y eliminar al usuario carlos. El verificador de stock está restringido a acceder únicamente a la aplicación local, por lo que necesitaremos encontrar un open redirect que afecte a la aplicación primero
Guía de SSRF
Antes de completar este laboratorio es recomendable leerse esta guía de SSRF https://justice-reaper.github.io/posts/SSRF-Guide/
Resolución
Al acceder a la web nos sale esto

Pulsamos en View details y vemos la descripción del producto y dos botones

Hacemos click sobre Next product y capturamos la petición con Burpsuite

Nos dirigimos a Burpsuite Collaborator hacemos click en Copy to clipboard y vemos que se está haciendo una petición a una url vamos a ver si nos llega a nosotros esa petición
/product/nextProduct?currentProductId=2&path=http://7goh8fybs0v4qrewpleyopqg77dy1rpg.oastify.com
Efectivamente nos llega una petición en Burpsuite Collaborator y por lo tanto, hemos encontrado un open redirect
![]()
Un indicio para saber si la web puede ser vulnerable a open redirect es tramitando esta petición
/product/nextProduct?currentProductId=2&path=test
Si la web es vulnerable a open redirect esto se ve reflejado en el location

Abusando del open redirect intentamos llevar a cabo un SSRF, sin embargo no funciona al tramitarlo por GET
/product/nextProduct?currentProductId=2&path=http://192.168.0.12:8080/admin
Pulsamos sobre la función Check status en la descripción de un producto y capturamos la petición con Burpsuite

Vemos que stockApi usa la ruta /products así que construimos un nuevo payload
stockApi=/product/nextProduct?currentProductId=2%26path=http://192.168.0.12:8080/admin
Hacemos click derecho y seleccionamos una de las dos opciones
![]()
Vemos el panel administrativo

Si intentamos eliminar al usuario carlos nos mostrará este mensaje, debido a que no estamos logueamos
![]()
Utilizamos el SSRF para eliminar al usuario carlos
stockApi=/product/nextProduct?currentProductId=2%26path=http://192.168.0.12:8080/admin/delete?username=