Server-side Attacks
Target(s): 94.237.59.174:33761
Escenario
Se le ha encomendado la tarea de realizar una evaluación de seguridad de la aplicación web de un cliente. Aplique lo que ha aprendido en este módulo para obtener la bandera.
Pregunta 1: Obtén la flag
Desviamos el tráfico a través de Burp, recargamos la página y vemos una solicitud POST que envía código a una API:

Enviamos la request al Repeater, cambiando el valor de api a la IP de localhost para ver si devuelve el código fuente de la página:

Esto confirma que el SSRF no es blind, el siguiente paso es la enumeración de la API para encontrar puertos o directorios disponibles. Lanzamos una request a un puerto abierto (80) y a uno cerrado (81) para ver la respuestas que da el servidor y luego utilizarlas para filtrar:


Usaremos fuff para fuzzear puertos y directorios, filtrando por el mensaje de cuando no se encuentra el puerto/directorio. Utilizaremos las wordlist disponibles en la máquina:
Conseguimos algunos hits pero nada destacable, por lo que probaremos con otras técnicas.
Modificamos la request con el payload ${7*7} para probar si es vulnerable a SSTI:

Vemos que se inyecta en el segundo objeto de JSON, seguimos el esquema que vimos en las inyecciones SSTI para lograr el resultado de la operación.

Probaremos la ejecución de código:

Vemos que se ejecuta correctamente el comando, por lo que probaremos leer el contenido de flag:

Hemos encodeado el espacio en URL encode (%20) pero da un error. Probaremos otra forma de encodearla, por ejemplo en hexadecimal (\x20):

Última actualización