SSRF with blacklist-based input filter – PortSwigger Write Up

En este post vamos a estar resolviendo el laboratorio de PortSwigger: “SSRF with blacklist-based input filter.”

Pasos

Este laboratorio tiene una función de verificación de existencias que obtiene datos de un sistema interno.

Para resolver el laboratorio, cambie la URL de verificación de existencias para acceder a la interfaz de administración http://localhost/adminy elimine el usuario carlos.

El desarrollador ha desplegado dos débiles defensas anti-SSRF que deberá eludir.


Vamos a ver la web y vamos a ir a ver los detalles de un producto.


Una vez dentro vamos a interceptar la petición con el burpsuite.


Una vez recibida la petición vamos a enviarla al Repeater y a darle a send a ver que nos devuelve



En este caso vamos a recodear la url con Ctrl U y a ver si nos devuelve algo, dandole a send.




Nos falta hacer lo mismo en el & hay que recodearlo con Ctrl U.


No ha sido exitoso recodeandolo asi que en este caso vamos a usar localhost a ver si podemos acceder.


El anterior caso no ha sido exitoso, como sabemos localhost se puede representar de esta otra manera 127.0.0.1, vamos a probar de esa manera:


Como por detrás quizás esté validando en el servidor que la palabra admin no le deje entrar, vamos a codear la a de admin para que poder bypassear la sanetización. Y aparte vamos a usar el 127.1 ya que en este caso si los siguientes números son 0, se puede simplificar la dirección IP de esta manera: 127.1



Y efectivamente de esta manera nos ha dejado acceder al panel de admin, en este caso hay que eliminar al usuario Carlos, así que vamos a eliminarlo y de esta forma completamos el laboratorio.



Laboratorio realizado.


¡Un saludo y espero que os sirva de apoyo!