Vulnerabilidad SSRF

 

www.onlinetis.com

La vulnerabilidad Server-Side Request Forgery (SSRF), o "falsificación de petición del lado del servidor", es una vulnerabilidad de seguridad en la que un atacante puede inducir a una aplicación del lado del servidor a realizar peticiones HTTP a un destino arbitrario de su elección.

El atacante utiliza el servidor vulnerable como un proxy para atacar otros sistemas o servicios que pueden ser inaccesibles desde internet, como la red interna de la organización, la propia máquina local (localhost) o servicios de la nube.


¿Cómo funciona un ataque SSRF?

El ataque SSRF explota la confianza del servidor en sí mismo y en otros sistemas de su red. La vulnerabilidad ocurre cuando una aplicación web permite a un usuario proporcionar una URL y la aplicación la visita sin una validación adecuada.

Aquí tienes un ejemplo paso a paso:

  1. Función vulnerable: Una aplicación web tiene una función que toma una URL como entrada y la procesa. Un ejemplo común es una herramienta que descarga una imagen de internet para generar una miniatura o un servicio que lee datos de otra API a través de una URL proporcionada por el usuario.

  2. Petición maliciosa: En lugar de proporcionar una URL pública, el atacante proporciona una URL interna o local.

    http://ejemplo.com/download_image?url=http://127.0.0.1/admin
    
  3. El servidor como proxy: El servidor, al procesar la petición, intenta acceder a la URL http://127.0.0.1/admin. Dado que el servidor se está comunicando consigo mismo (o con un servicio interno), es probable que la petición tenga éxito, a pesar de que esta URL sería inaccesible para el atacante desde su propia máquina.

  4. Resultado: El servidor descarga el contenido de http://127.0.0.1/admin y lo procesa. Si la página de administración no tiene autenticación por sesión, la aplicación podría devolver el contenido de la página de administración al atacante.


Ejemplos comunes de SSRF

  • Acceder a la red interna: Un atacante puede escanear la red interna del servidor probando diferentes direcciones IP y puertos. Por ejemplo, http://ejemplo.com/fetch?url=http://192.168.1.100:8080.

  • Obtener credenciales de la nube: En entornos de nube como AWS, GCP o Azure, el servidor puede tener acceso a metadatos sensibles (como credenciales de acceso). Un atacante puede forzar al servidor a acceder a una URL como http://169.254.169.254/latest/meta-data/ para obtener estas credenciales.

  • Ataques de puerto: Se pueden realizar ataques de escaneo de puertos internos, donde el atacante usa SSRF para determinar qué puertos están abiertos en las máquinas de la red interna.


Prevención

La mitigación de las vulnerabilidades SSRF se centra en la validación y el filtrado de las entradas del usuario.

  • Lista blanca (Whitelist): Permite que el servidor solo se comunique con un conjunto de dominios y direcciones IP previamente aprobados. Esta es la forma más segura de prevenir el SSRF.

  • Lista negra (Blacklist): Bloquea direcciones IP y dominios maliciosos conocidos, pero es menos segura, ya que un atacante puede eludirla fácilmente con codificaciones o técnicas de ofuscación.

  • Sanitización de URL: Validar que la URL no apunte a direcciones IP privadas o a la máquina local (127.0.0.1, localhost, etc.).

  • Redirigir a un proxy de seguridad: Redireccionar las peticiones a un servicio proxy seguro que valida las URL antes de que el servidor principal las procese.

Entradas populares de este blog

Ciberseguridad y hacking con Whatweb

Como robar contraseñas haciendo un phishing web

Arsenal software hacking NFC