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.

- 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.
- 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.
- 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?
- Una vez actualizado el valor, elegimos
Salarydel menú desplegableSelect Category.
- Ahí lo tenemos, el panel que antes era inaccesible.

