XUT_ / COURSES / PENETRATION TESTER

Types of SSRF - Basic - continued

En esta tarea vamos a continuar aprendiendo sobre técnicas básicas de SSRF.


Escenario 2: Acceder a un Servidor Interno

En aplicaciones web complejas, es común para las aplicaciones front-end interactuar con servidores back-end internos. Estos servidores suelen estar hosteados en direcciones IP no ruteables, por lo que un usuario de internet no puede acceder a ellos. En este contexto, un atacante explota la validación del input vulnerable de la web para engañar al servidor para que mande peticiones internas a recursos en la misma red.

Por ejemplo, si un servidor interno ofrece manejo de base de datos o controles administrativos, el atacante podría construir una URL que inicie una acción no deseada en estos sistemas internos. Técnicamente se consigue a través de input manipulado, como direcciones IP especiales (como 192.168.x.x o 10.x.x.x para IPv4) o nombres de dominio (por ejemplo internal-database.hrms.thm).

Además, como estos servidores internos pueden estar faltos del mismo nivel de seguridad y monitorización que los servidores externos, dicha explotación puede no ser vista. El atacante puede usar también este método para realizar reconocimiento en la red interna, identificando otros objetivos o sistemas vulnerables.

Cómo Funciona

  • En este caso, trataremos de acceder a recursos internos inaccesibles a través de peticiones directas.
  • Ahora que hemos adquirido las credenciales del panel de login, vamos a iniciar sesión en la dashboard.
  • Una vez logueados en la app HRMS, veremos un dashboard que lista empleados y sus departamentos. Hay un menú que muestra los datos de los empleados y su salario. Types of SSRF - Basic - continued
  • Desde el archivo de configuración, podemos ver que el panel de admin está hosteado en http://192.168.2.10/admin.php. Si intentamos loguearnos no es accesible directamente. Types of SSRF - Basic - continued
  • No tenemos ruta a esa IP ya que forma parte de una red privada y sólo puede ser accedida por una máquina en la misma red.
  • Si comprobamos el código fuente de HTML, muestra que el menú toma la URL de un sistema interno y renderiza la información. Los detalles de toos los empleados se trasfieren de http://192.168.2.10/employees.php. Types of SSRF - Basic - continued
  • Vale, vemos que el menú desplegable accede a un sistema interno. ¿Qué pasa si intentamos cambiar la petición de tal forma que en vez de cargar la página de empleados mandamos http://192.168.2.10/admin.php? Types of SSRF - Basic - continued
  • Una vez actualizado el valor, elegimos Salary del menú desplegable Select Category. Types of SSRF - Basic - continued
  • Ahí lo tenemos, el panel que antes era inaccesible. Types of SSRF - Basic - continued