DO - Funktionen
Reading time: 3 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Grundlegende Informationen
DigitalOcean Functions, auch bekannt als "DO Functions", ist eine serverlose Computing-Plattform, die es Ihnen ermöglicht, Code auszuführen, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen. Mit DO Functions können Sie Ihren Code als "Funktionen" schreiben und bereitstellen, die über API, HTTP-Anfragen (wenn aktiviert) oder Cron ausgelöst werden können. Diese Funktionen werden in einer vollständig verwalteten Umgebung ausgeführt, sodass Sie sich keine Sorgen um Skalierung, Sicherheit oder Wartung machen müssen.
Um in DO eine Funktion zu erstellen, müssen Sie zuerst einen Namensraum erstellen, der Funktionen gruppiert.
Innerhalb des Namensraums können Sie dann eine Funktion erstellen.
Auslöser
Der Weg, eine Funktion über die REST API auszulösen (immer aktiviert, es ist die Methode, die die CLI verwendet), besteht darin, eine Anfrage mit einem Authentifizierungstoken wie:
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="
Um zu sehen, wie das doctl
CLI-Tool dieses Token erhält (damit Sie es replizieren können), zeigt der folgende Befehl die vollständige Netzwerkverfolgung:
doctl serverless connect --trace
Wenn der HTTP-Trigger aktiviert ist, kann eine Webfunktion über diese HTTP-Methoden GET, POST, PUT, PATCH, DELETE, HEAD und OPTIONS aufgerufen werden.
caution
In DO-Funktionen können Umgebungsvariablen nicht verschlüsselt werden (zum Zeitpunkt dieses Schreibens).
Ich konnte keine Möglichkeit finden, sie über die CLI zu lesen, aber über die Konsole ist es ganz einfach.
Funktions-URLs sehen so aus: https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>
Enumeration
# 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
Es gibt keinen Metadaten-Endpunkt von der Functions-Sandbox.
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.