DO - Functions

Dowiedz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Dowiedz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wesprzyj HackTricks

Podstawowe informacje

DigitalOcean Functions, znane również jako "DO Functions", to platforma obliczeniowa bezserwerowa, która pozwala uruchamiać kod bez konieczności martwienia się o infrastrukturę bazową. Dzięki DO Functions możesz pisać i wdrażać swój kod jako "funkcje", które mogą być wywoływane za pomocą API, żądań HTTP (jeśli są włączone) lub crona. Te funkcje są wykonywane w w pełni zarządzanym środowisku, więc nie musisz martwić się o skalowanie, bezpieczeństwo ani konserwację.

W DO, aby utworzyć funkcję, najpierw musisz utworzyć przestrzeń nazw, która będzie grupować funkcje. Wewnątrz przestrzeni nazw możesz następnie utworzyć funkcję.

Wyzwalacze

Sposobem wywołania funkcji za pomocą REST API (zawsze włączone, to metoda używana przez interfejs wiersza poleceń) jest wywołanie żądania z tokenem uwierzytelniającym jak:

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="

Aby zobaczyć, jak narzędzie wiersza poleceń doctl pobiera ten token (abyś mógł go odtworzyć), następujące polecenie pokazuje pełny ślad sieci:

doctl serverless connect --trace

Kiedy wyzwalacz HTTP jest włączony, funkcję sieciową można wywołać za pomocą tych metod HTTP: GET, POST, PUT, PATCH, DELETE, HEAD i OPTIONS.

W funkcjach DO, zmienne środowiskowe nie mogą być szyfrowane (w chwili pisania tego). Nie znalazłem sposobu na odczytanie ich za pomocą wiersza poleceń, ale z konsoli jest to proste.

Adresy URL funkcji wyglądają tak: https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>

Wyliczanie

# 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

Nie ma punktu końcowego metadanych z piaskownicy Functions.

Naucz się i praktykuj Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Naucz się i praktykuj Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wesprzyj HackTricks

Last updated