DO - Fonctions
Reading time: 4 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Informations de base
DigitalOcean Functions, également connu sous le nom de "DO Functions", est une plateforme de calcul sans serveur qui vous permet de faire fonctionner du code sans avoir à vous soucier de l'infrastructure sous-jacente. Avec DO Functions, vous pouvez écrire et déployer votre code sous forme de "fonctions" qui peuvent être déclenchées via API, requêtes HTTP (si activées) ou cron. Ces fonctions sont exécutées dans un environnement entièrement géré, donc vous n'avez pas à vous soucier de la mise à l'échelle, de la sécurité ou de la maintenance.
Dans DO, pour créer une fonction, vous devez d'abord créer un espace de noms qui sera un groupe de fonctions.
À l'intérieur de l'espace de noms, vous pouvez ensuite créer une fonction.
Déclencheurs
La façon de déclencher une fonction via REST API (toujours activée, c'est la méthode utilisée par le cli) est de déclencher une requête avec un jeton d'authentification comme :
curl -X POST "https://faas-lon1-129376a7.doserverless.co/api/v1/namespaces/fn-c100c012-65bf-4040-1230-2183764b7c23/actions/functionname?blocking=true&result=true" \
-H "Content-Type: application/json" \
-H "Authorization: Basic MGU0NTczZGQtNjNiYS00MjZlLWI2YjctODk0N2MyYTA2NGQ4OkhwVEllQ2t4djNZN2x6YjJiRmFGc1FERXBySVlWa1lEbUxtRE1aRTludXA1UUNlU2VpV0ZGNjNqWnVhYVdrTFg="
Pour voir comment l'outil cli doctl
obtient ce jeton (afin que vous puissiez le reproduire), la commande suivante montre la trace réseau complète :
doctl serverless connect --trace
Lorsque le déclencheur HTTP est activé, une fonction web peut être invoquée via ces méthodes HTTP GET, POST, PUT, PATCH, DELETE, HEAD et OPTIONS.
caution
Dans les fonctions DO, les variables d'environnement ne peuvent pas être chiffrées (au moment de la rédaction de ce document).
Je n'ai trouvé aucun moyen de les lire depuis la CLI mais depuis la console, c'est simple.
Les URLs des fonctions ressemblent à ceci : https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>
Énumération
# Namespace
doctl serverless namespaces list
# Functions (need to connect to a namespace)
doctl serverless connect
doctl serverless functions list
doctl serverless functions invoke <func-name>
doctl serverless functions get <func-name>
# Logs of executions
doctl serverless activations list
doctl serverless activations get <activation-id> # Get all the info about execution
doctl serverless activations logs <activation-id> # get only the logs of execution
doctl serverless activations result <activation-id> # get only the response result of execution
# I couldn't find any way to get the env variables form the CLI
caution
Il n'y a pas de point de terminaison de métadonnées depuis le sandbox des Functions.
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.