SSRF with filter bypass via open redirection vulnerability
Laboratorio de Portswigger sobre 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
1
/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
1
/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
1
/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
1
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
1
stockApi=/product/nextProduct?currentProductId=2%26path=http://192.168.0.12:8080/admin/delete?username=









