DO - Funksies

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Basiese Inligting

DigitalOcean Funksies, ook bekend as “DO Funksies,” is ’n serverlose rekenaarplatform wat jou toelaat om kode uit te voer sonder om oor die onderliggende infrastruktuur te bekommer. Met DO Funksies kan jy jou kode skryf en ontplooi as “funksies” wat geaktiveer kan word via API, HTTP versoeke (indien geaktiveer) of cron. Hierdie funksies word in ’n volledig bestuurde omgewing uitgevoer, so jy hoef nie te bekommer oor skaal, sekuriteit of onderhoud nie.

In DO, om ’n funksie te skep moet jy eers ’n naamruimte skep wat die funksies sal groepeer.
Binne die naamruimte kan jy dan ’n funksie skep.

Triggers

Die manier om ’n funksie via REST API te aktiveer (altyd geaktiveer, dit is die metode wat die cli gebruik) is deur ’n versoek te aktiveer met ’n authentikasie token soos:

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

Om te sien hoe die doctl cli-gereedskap hierdie token verkry (sodat jy dit kan repliseer), die volgende opdrag toon die volledige netwerkspoor:

doctl serverless connect --trace

Wanneer HTTP-trigger geaktiveer is, kan ’n webfunksie deur hierdie HTTP-metodes GET, POST, PUT, PATCH, DELETE, HEAD en OPTIONS aangeroep word.

Caution

In DO-funksies kan omgewing veranderlikes nie geënkripteer word (ten tyde van hierdie skrywe).
Ek kon nie enige manier vind om hulle van die CLI te lees nie, maar van die konsole is dit reguit vorentoe.

Funksies-URL’s lyk soos volg: https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>

Enumerasie

# 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

Daar is nie ’n metadata-eindpunt van die Functions sandkas nie.

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks