DO - Functions

Reading time: 4 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Basic Information

DigitalOcean Functions, जिसे "DO Functions" के नाम से भी जाना जाता है, एक सर्वरलेस कंप्यूटिंग प्लेटफॉर्म है जो आपको बुनियादी ढांचे की चिंता किए बिना कोड चलाने की अनुमति देता है। DO Functions के साथ, आप अपने कोड को "फंक्शंस" के रूप में लिख और तैनात कर सकते हैं जिन्हें API, HTTP अनुरोधों (यदि सक्षम हो) या क्रॉन के माध्यम से प्रेरित किया जा सकता है। ये फंक्शंस एक पूरी तरह से प्रबंधित वातावरण में निष्पादित होते हैं, इसलिए आपको स्केलिंग, सुरक्षा, या रखरखाव की चिंता करने की आवश्यकता नहीं है।

DO में, एक फंक्शन बनाने के लिए सबसे पहले आपको एक नामस्थान बनाना होगा जो फंक्शंस को समूहित करेगा।
नामस्थान के अंदर आप फिर एक फंक्शन बना सकते हैं।

Triggers

REST API के माध्यम से एक फंक्शन को प्रेरित करने का तरीका (हमेशा सक्षम, यह वह विधि है जिसका उपयोग cli करता है) एक प्रमाणन टोकन के साथ अनुरोध को प्रेरित करना है जैसे:

bash
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 टूल इस टोकन को कैसे प्राप्त कर रहा है (ताकि आप इसे दोहरा सकें), निम्नलिखित कमांड पूरा नेटवर्क ट्रेस दिखाता है:

bash
doctl serverless connect --trace

जब HTTP ट्रिगर सक्षम होता है, एक वेब फ़ंक्शन को इन HTTP विधियों GET, POST, PUT, PATCH, DELETE, HEAD और OPTIONS के माध्यम से बुलाया जा सकता है।

caution

DO फ़ंक्शंस में, पर्यावरण चर को एन्क्रिप्ट नहीं किया जा सकता (इस लेखन के समय)।
मुझे CLI से उन्हें पढ़ने का कोई तरीका नहीं मिला लेकिन कंसोल से यह सीधा है।

फ़ंक्शंस URLs इस तरह दिखते हैं: https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>

Enumeration

bash
# 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 हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें