DO - Функції
Reading time: 3 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Основна інформація
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
cli отримує цей токен (щоб ви могли його відтворити), наступна команда показує повний мережевий слід:
doctl serverless connect --trace
Коли HTTP тригер увімкнено, веб-функцію можна викликати через ці HTTP методи GET, POST, PUT, PATCH, DELETE, HEAD та OPTIONS.
caution
У DO функціях змінні середовища не можуть бути зашифровані (на момент написання цього тексту).
Я не зміг знайти жодного способу прочитати їх з CLI, але з консолі це просто.
URL функцій виглядають так: 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
Немає метаданих з кінцевої точки в пісочниці Functions.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.