Technologieaustausch

[Netzwerksicherheit] Microsoft Azure-Funktionen von SSRF

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Das erneute Posten ist ohne Zustimmung nicht gestattet.

Artikelverzeichnis

Text

Azure Functions ist ein serverloser Computerdienst, der bei Bedarf alle notwendigen Infrastrukturen und Ressourcen für die Ausführung von Anwendungen bereitstellt. Es kann zum Erstellen von Web-APIs, zum Reagieren auf Datenbankänderungen, zum Verarbeiten von IoT-Datenströmen, zum Verwalten von Nachrichtenwarteschlangen und für viele andere Zwecke verwendet werden.

Erstellen Sie zunächst eine Funktionsanwendung:

img

Funktionscode erstellen:

img

Nachdem Sie auf „Funktionen“ geklickt haben, rufen Sie die folgende Seite zur Konfiguration auf:

img

Geben Sie einen Beispielnamen ein und wählen Sie eine Vorlage aus:

img

Nachdem die Funktions-App erstellt wurde, wählen Sie Code + Test aus. Es gibt verschiedene Anfragen des Kunden, darunter zwei Sonderwünsche:

1、https://functions.azure.com/api/passthrough 
2、https://functions.azure.com/api/debug
  • 1
  • 2

img

Beim Durchsuchen der GitHub-Bibliothek lautet der Schlüsselcode wie folgt:

img

Wie Sie dem diesem Code entsprechenden Anforderungspaket entnehmen können, sendet der Browser unsere angepasste Funktion (BlobTrigger1.dat) hat eine GET-Anfrage gesendet:

img

Aus der Dokumentation geht hervor, dass die folgenden zwei Parameter zur Authentifizierung bei „functions.azure.com“ verwendet werden und für die Ausführung der Anfrage erforderlich sind:

img

Das bedeutet, dass wir nach dem Entfernen dieser beiden Header jede beliebige Anfrage senden können.

Dann haben wir die URL geändert und die Adresse des Azure Functions-Servers erhalten:

img

Wenn Sie eine Anfrage an https://www.nba.com senden, lautet die Antwort wie folgt:

img

Es stellt sich heraus, dass die Funktion application zur Ausführung unserer Anfrage verwendet wird.

Gleichzeitig werden Informationen über die IP-Adresse durch Senden einer Anfrage an https://www.infobyip.com/ abgerufen, und der zurückgegebene User-Agent ist axios/0.21.4, sodass die Funktion ein Node JS-Modul ist:

img

Nachdem Sie die Funktionen und Eigenschaften des Funktionsprogramms geklärt haben, können Sie es weiter nutzen.

ausbeuten

Es wurde versucht, auf den IMDS-Dienst zuzugreifen, konnte aber nicht darauf zugreifen.kann aber einen potenziell offenen internen Port aufzählen41692

img

Durch eine weitere Aufzählung wurde bestätigt, dass der interne Endpunkt erreichbar war, wie unten gezeigt:

img
]

Durch eine weitere Aufzählung wurde bestätigt, dass der interne Endpunkt erreichbar war, wie unten gezeigt:

img

Originalquelle: https://orca.security/resources/blog/ssrf-vulnerabilities-azure-functions-app/