Partage de technologie

[Sécurité réseau] Fonctions Microsoft Azure de SSRF

2024-07-12

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

la republication n’est pas autorisée sans consentement.

Annuaire d'articles

texte

Azure Functions est un service informatique sans serveur qui fournit à la demande toute l'infrastructure et les ressources nécessaires à l'exécution d'applications. Il peut être utilisé pour créer des API Web, répondre aux modifications de bases de données, traiter les flux de données IoT, gérer les files d'attente de messages et à bien d'autres fins.

Créez d’abord une application de fonction :

image

Créer un code de fonction :

image

Après avoir cliqué sur Fonctions, entrez dans la page suivante pour la configuration :

image

Saisissez un exemple de nom et sélectionnez un modèle :

image

Une fois l’application de fonction créée, sélectionnez Code + Test. Il existe diverses demandes envoyées par le client, dont deux demandes particulières :

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

image

En recherchant dans la bibliothèque GitHub, le code clé est le suivant :

image

Comme vous pouvez le voir sur le package de requête correspondant à ce code, le navigateur envoie notre fonction personnalisée (BlobTrigger1.dat) a envoyé une requête GET :

image

À la lecture de la documentation, les deux paramètres suivants sont utilisés pour s'authentifier auprès de function.azure.com et sont nécessaires pour exécuter la requête :

image

Cela signifie qu'après avoir supprimé ces deux en-têtes, nous pouvons envoyer n'importe quelle demande.

Ensuite nous avons modifié l'url et obtenu l'adresse du serveur Azure Functions :

image

En envoyant une demande à https://www.nba.com, la réponse est la suivante :

image

Il s'avère que la fonction application est utilisée pour exécuter notre requête.

Dans le même temps, les informations sur l'adresse IP sont obtenues en envoyant une requête à https://www.infobyip.com/, et le User-Agent renvoyé est axios/0.21.4, la fonction est donc un module Node JS :

image

Après avoir clarifié les fonctions et les caractéristiques du programme fonctionnel, vous pouvez l'utiliser davantage.

exploiter

J'ai essayé d'accéder au service IMDS mais impossible d'y accéder.mais peut énumérer un port interne potentiellement ouvert41692

image

Grâce à une énumération plus approfondie, il a été confirmé que le point de terminaison interne était accessible, comme indiqué ci-dessous :

image
]

Grâce à une énumération plus approfondie, il a été confirmé que le point de terminaison interne était accessible, comme indiqué ci-dessous :

image

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