DO - Functions

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Основна інформація

DigitalOcean Functions, також відомі як "DO Functions", є платформою обчислення без сервера, яка дозволяє вам виконувати код, не замислюючись про базову інфраструктуру. З DO Functions ви можете писати та розгортати свій код у вигляді "функцій", які можуть бути запущені через API, HTTP-запити (якщо ввімкнено) або cron. Ці функції виконуються в повністю керованому середовищі, тому вам не потрібно турбуватися про масштабування, безпеку або обслуговування.

У DO, для створення функції спочатку потрібно створити простір імен, який буде групувати функції. У межах простору імен ви можете створити функцію.

Тригери

Спосіб запуску функції через REST API (завжди увімкнено, це метод, який використовує CLI) полягає в тому, щоб запустити запит з аутентифікаційним токеном таким чином:

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

Для того, щоб побачити, як doctl отримує цей токен (щоб ви могли відтворити це), наступна команда показує повний мережевий слід:

doctl serverless connect --trace

Коли увімкнено HTTP тригер, веб-функцію можна викликати за допомогою таких HTTP-методів, як GET, POST, PUT, PATCH, DELETE, HEAD та OPTIONS.

У функціях DO змінні середовища не можуть бути зашифровані (на момент написання цього). Я не зміг знайти способу прочитати їх з CLI, але з консолі це просто.

URL-адреси функцій виглядають наступним чином: https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>

Перелік

# 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

Немає кінцевої точки метаданих з пісочниці функцій.

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated