Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** con las herramientas comunitarias **más avanzadas** del mundo.\
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver a tu **empresa anunciada en HackTricks**? o ¿quieres acceder a la **última versión de PEASS o descargar HackTricks en PDF**? Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
La falsificación de solicitudes del lado del servidor (también conocida como SSRF) es una vulnerabilidad de seguridad web que permite a un atacante **inducir a la aplicación del lado del servidor a realizar solicitudes HTTP a un dominio arbitrario de la elección del atacante**. (De [aquí](https://portswigger.net/web-security/ssrf))
Lo primero que necesitas hacer es capturar una interacción SSRF provocada por ti. Para capturar una interacción HTTP o DNS puedes usar herramientas como:
Usualmente encontrarás que el SSRF solo funciona en **ciertos dominios en lista blanca** o URL. En la siguiente página tienes una **compilación de técnicas para intentar eludir esa lista blanca**:
Si el servidor está correctamente protegido podrías **eludir todas las restricciones explotando una Redirección Abierta dentro de la página web**. Debido a que la página web permitirá **SSRF al mismo dominio** y probablemente **seguirá redirecciones**, puedes explotar la **Redirección Abierta para hacer que el servidor acceda a cualquier recurso interno**.\
Protocolo Ligero de Acceso a Directorios. Es un protocolo de aplicación utilizado sobre una red IP para gestionar y acceder al servicio de información de directorios distribuidos.
Usando este protocolo puedes especificar la **IP, puerto y bytes** que quieres que el servidor **envíe**. Luego, puedes básicamente explotar un SSRF para **comunicarte con cualquier servidor TCP** (pero necesitas saber cómo hablar con el servicio primero).\
Afortunadamente, puedes usar [Gopherus](https://github.com/tarunkant/Gopherus) para crear cargas útiles para varios servicios. Adicionalmente, [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) puede ser utilizado para crear cargas útiles _gopher_ para servicios _Java RMI_.
Si el SSRF se ejecuta mediante **curl**, curl tiene una característica llamada [**URL globbing**](https://everything.curl.dev/cmdline/globbing) que podría ser útil para evadir WAFs. Por ejemplo, en este [**writeup**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-easylfi) puedes encontrar este ejemplo para un **path traversal vía protocolo `file`**:
Algunas aplicaciones utilizan software de análisis del lado del servidor que rastrea a los visitantes. Este software a menudo registra el encabezado Referrer en las solicitudes, ya que esto es de particular interés para el seguimiento de enlaces entrantes. A menudo, el software de análisis visitará cualquier URL de terceros que aparezca en el encabezado Referrer. Esto se hace típicamente para analizar los contenidos de los sitios de referencia, incluyendo el texto ancla que se utiliza en los enlaces entrantes. Como resultado, el encabezado Referer a menudo representa una superficie de ataque fructífera para las vulnerabilidades SSRF.\
Para descubrir este tipo de vulnerabilidades "ocultas" podrías usar el complemento "**Collaborator Everywhere**" de Burp.
Con esta configuración insegura, podemos **explotar la vulnerabilidad SSRF simplemente especificando la IP o nombre de dominio deseado en el campo SNI**. Por ejemplo, el siguiente comando forzaría a Nginx a conectarse a _internal.host.com_:
Si la página web está creando automáticamente un PDF con información que has proporcionado, puedes **insertar JS que será ejecutado por el creador del PDF** (el servidor) mientras crea el PDF y podrás abusar de un SSRF. [**Encuentra más información aquí**](../xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)**.**
Para algunas explotaciones podrías necesitar **enviar una respuesta de redirección** (potencialmente para usar un protocolo diferente como gopher). Aquí tienes diferentes códigos en python para responder con una redirección:
Si tienes **problemas** para **exfiltrar contenido de una IP local** debido a **CORS/SOP**, **DNS Rebidding** se puede utilizar para eludir esa limitación:
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) es una herramienta para realizar ataques de [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding). Incluye los componentes necesarios para cambiar la dirección IP del nombre del servidor DNS del atacante a la dirección IP de la máquina objetivo y para servir cargas útiles de ataque para explotar software vulnerable en la máquina objetivo.
1. Pedir al usuario/bot **acceder** a un **dominio** controlado por el **atacante**
2. El **TTL** del **DNS** es de **0** seg (así que la víctima verificará la IP del dominio de nuevo pronto)
3. Se crea una **conexión TLS** entre la víctima y el dominio del atacante. El atacante introduce la **carga útil dentro** del **ID de Sesión o Ticket de Sesión**.
4. El **dominio** iniciará un **bucle infinito** de redirecciones contra **sí mismo**. El objetivo de esto es hacer que el usuario/bot acceda al dominio hasta que realice **de nuevo** una **solicitud DNS** del dominio.
5. En la solicitud DNS se proporciona una **dirección IP privada****ahora** (127.0.0.1 por ejemplo)
6. El usuario/bot intentará **restablecer la conexión TLS** y para hacerlo **enviará** el **ID de Sesión/Ticket** (donde estaba contenida la **carga útil** del atacante). Así que felicidades, has logrado que el **usuario/bot se ataque a sí mismo**.
Ten en cuenta que durante este ataque, si quieres atacar localhost:11211 (_memcache_) necesitas hacer que la víctima establezca la conexión inicial con www.attacker.com:11211 (el **puerto siempre debe ser el mismo**).\
Para **realizar este ataque puedes usar la herramienta**: [https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
Para **más información** echa un vistazo a la charla donde se explica este ataque: [https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference](https://www.youtube.com/watch?v=qGpAJxfADjo\&ab\_channel=DEFCONConference)
La diferencia entre un SSRF ciego y uno que no lo es, es que en el ciego no puedes ver la respuesta de la solicitud SSRF. Entonces, es más difícil de explotar porque solo podrás explotar vulnerabilidades bien conocidas.
**Comprobando el tiempo** de las respuestas del servidor podría ser **posible saber si un recurso existe o no** (quizás se tarda más tiempo en acceder a un recurso existente que a uno que no existe)
Si encuentras una vulnerabilidad SSRF en una máquina que se ejecuta dentro de un entorno en la nube, podrías obtener información interesante sobre el entorno de la nube e incluso credenciales:
_remote-method-guesser_ es un escáner de vulnerabilidades _Java RMI_ que admite operaciones de ataque para la mayoría de las vulnerabilidades comunes de _Java RMI_. La mayoría de las operaciones disponibles admiten la opción `--ssrf`, para generar una carga útil _SSRF_ para la operación solicitada. Junto con la opción `--gopher`, se pueden generar directamente cargas útiles _gopher_ listas para usar.
SSRF Proxy es un servidor proxy HTTP multi-hilo diseñado para tunelizar el tráfico HTTP del cliente a través de servidores HTTP vulnerables a Server-Side Request Forgery (SSRF).
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? o ¿quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).