Utilice [**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 que tu **empresa sea 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 exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag 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 solicitud del lado del servidor (también conocida como SSRF, por sus siglas en inglés) 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** elegido por el atacante. (De [aquí](https://portswigger.net/web-security/ssrf))
Lo primero que debes hacer es capturar una interacción de SSRF provocada por ti. Para capturar una interacción HTTP o DNS, puedes utilizar herramientas como:
Por lo general, descubrirás que el SSRF solo funciona en **ciertos dominios en lista blanca** o URL. En la siguiente página tienes una **recopilació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 aprovechar la **redirección abierta para hacer que el servidor acceda a cualquier recurso interno**.\
Protocolo de Acceso Ligero a Directorios. Es un protocolo de aplicación utilizado sobre una red IP para gestionar y acceder al servicio de información de directorio distribuido.
Usando este protocolo puedes especificar la **IP, puerto y bytes** que quieres que el servidor **envíe**. Luego, básicamente puedes explotar un SSRF para **comunicarte con cualquier servidor TCP** (pero primero necesitas saber cómo hablar con el servicio).\
Afortunadamente, puedes usar [Gopherus](https://github.com/tarunkant/Gopherus) para crear payloads para varios servicios. Además, [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) se puede utilizar para crear payloads _gopher_ para servicios _Java RMI_.
Gopher HTTP is a technique used in Server-Side Request Forgery (SSRF) attacks. SSRF is a vulnerability that allows an attacker to make requests from the server to other internal or external resources. Gopher HTTP takes advantage of the Gopher protocol, which is a simple protocol used for retrieving documents over the Internet.
In a Gopher HTTP attack, the attacker crafts a URL that includes the Gopher protocol and specifies the desired resource. This URL is then sent to the vulnerable server, which processes the request and retrieves the specified resource using the Gopher protocol. The server's response is then returned to the attacker.
The Gopher protocol allows the attacker to access various resources, including files, directories, and even network services. By leveraging this protocol, an attacker can bypass restrictions and access sensitive information or perform unauthorized actions.
To protect against Gopher HTTP attacks, it is important to validate and sanitize all user-supplied input, especially URLs. Additionally, network-level protections, such as firewalls and access controls, can help mitigate the risk of SSRF attacks.
Remember, as a hacker, it is crucial to understand and responsibly disclose vulnerabilities to help improve the security of systems and protect against potential attacks.
Si el SSRF es ejecutado por **curl**, curl tiene una característica llamada [**URL globbing**](https://everything.curl.dev/cmdline/globbing) que podría ser útil para eludir WAFs. Por ejemplo, en este [**writeup**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-easylfi) puedes encontrar este ejemplo para una **travesía de ruta a través del protocolo `file`**:
Algunas aplicaciones utilizan software de análisis en el lado del servidor que rastrea a los visitantes. Este software a menudo registra la cabecera Referrer en las solicitudes, ya que esto es de particular interés para rastrear los enlaces entrantes. A menudo, el software de análisis visitará en realidad cualquier URL de terceros que aparezca en la cabecera Referrer. Esto se hace típicamente para analizar el contenido de los sitios de referencia, incluido el texto del ancla que se utiliza en los enlaces entrantes. Como resultado, la cabecera Referer a menudo representa una superficie de ataque fructífera para las vulnerabilidades SSRF.\
Para descubrir este tipo de vulnerabilidades "ocultas", puedes utilizar el complemento "**Collaborator Everywhere**" de Burp.
Aquí, el valor del campo SNI se utiliza directamente como la dirección del backend.
Con esta configuración insegura, podemos **explotar la vulnerabilidad SSRF simplemente especificando la IP o el nombre de dominio deseado en el campo SNI**. Por ejemplo, el siguiente comando obligaría a Nginx a conectarse a _internal.host.com_:
Si la página web está creando automáticamente un PDF con alguna información que has proporcionado, puedes **insertar un JS que será ejecutado por el propio creador de 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, es posible que necesites **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:
Utilice [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y automatizar fácilmente flujos de trabajo con las herramientas comunitarias más avanzadas del mundo.\
Si tiene **problemas** para **exfiltrar contenido desde una IP local** debido a **CORS/SOP**, puede utilizar **DNS Rebidding** para evitar esa limitación:
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) es una herramienta para realizar ataques de [rebinding DNS](https://en.wikipedia.org/wiki/DNS\_rebinding). Incluye los componentes necesarios para volver a enlazar la dirección IP del nombre DNS del servidor de ataque con la dirección IP de la máquina objetivo y para servir cargas de ataque para explotar software vulnerable en la máquina objetivo.
También puedes consultar el servidor en funcionamiento públicamente en [**http://rebind.it/singularity.html**](http://rebind.it/singularity.html)\*\*\*\*
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 del 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 **nuevamente** una **solicitud DNS** del dominio.
6. El usuario/bot intentará **restablecer la conexión TLS** y para hacerlo enviará el **ID de sesión/Ticket ID** (donde se encontraba la **carga útil** del atacante). Así que felicidades, lograste hacer que el **usuario/bot se ataque a sí mismo**.
Ten en cuenta que durante este ataque, si deseas atacar a localhost:11211 (_memcache_), debes 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 utilizar la herramienta**: [https://github.com/jmdx/TLS-poison/](https://github.com/jmdx/TLS-poison/)\
Para obtener **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 a ciegas 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 conocidas.
**Comprobando el tiempo** de las respuestas del servidor, puede ser **posible saber si un recurso existe o no** (tal vez se tarda más tiempo en acceder a un recurso existente que en acceder a uno que no existe)
Si encuentra una vulnerabilidad de SSRF en una máquina que se ejecuta dentro de un entorno de nube, es posible que pueda obtener información interesante sobre el entorno de la nube e incluso credenciales:
_remote-method-guesser_ es un escáner de vulnerabilidades de _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 de _SSRF_ para la operación solicitada. Junto con la opción `--gopher`, se pueden generar directamente cargas útiles de _gopher_ listas para usar.
SSRF Proxy es un servidor proxy HTTP multiproceso diseñado para canalizar el tráfico HTTP del cliente a través de servidores HTTP vulnerables a la falsificación de solicitudes del lado del servidor (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.
* Obtén 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).
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.\