# GCP - App Engine Enum {{#include ../../../banners/hacktricks-training.md}} ## Basic Information Google Cloud Platform's (GCP) App Engine एक **मजबूत, सर्वरलेस प्लेटफॉर्म है जो बड़े पैमाने पर वेब अनुप्रयोगों के विकास और होस्टिंग के लिए तैयार किया गया है**। इस प्लेटफॉर्म का डिज़ाइन विकास प्रक्रिया को सरल बनाने और अनुप्रयोगों के प्रबंधन को बढ़ाने पर केंद्रित है। GCP के App Engine की प्रमुख विशेषताएँ और लाभ हैं: 1. **सर्वरलेस आर्किटेक्चर**: App Engine स्वचालित रूप से बुनियादी ढाँचे को संभालता है, जिसमें सर्वर प्रावधान, कॉन्फ़िगरेशन और स्केलिंग शामिल हैं। यह डेवलपर्स को कोड लिखने पर ध्यान केंद्रित करने की अनुमति देता है बिना अंतर्निहित हार्डवेयर की चिंता किए। 2. **स्वचालित स्केलिंग**: App Engine आपके अनुप्रयोग को प्राप्त ट्रैफ़िक की मात्रा के जवाब में स्वचालित रूप से स्केल कर सकता है। यह बढ़ते ट्रैफ़िक को संभालने के लिए स्केल करता है और जब ट्रैफ़िक कम होता है तो इसे कम करता है, जिससे लागत और प्रदर्शन का अनुकूलन होता है। 3. **भाषा और रनटाइम समर्थन**: यह लोकप्रिय प्रोग्रामिंग भाषाओं जैसे Java, Python, Node.js, Go, Ruby, PHP, और .NET का समर्थन करता है। आप अपने अनुप्रयोगों को मानक या लचीले वातावरण में चला सकते हैं। मानक वातावरण अधिक प्रतिबंधात्मक है लेकिन विशिष्ट भाषाओं के लिए अत्यधिक अनुकूलित है, जबकि लचीला वातावरण अधिक अनुकूलन की अनुमति देता है। 4. **एकीकृत सेवाएँ**: App Engine कई अन्य GCP सेवाओं के साथ एकीकृत होता है, जैसे Cloud SQL, Cloud Storage, Cloud Datastore, और अधिक। यह एकीकरण क्लाउड-आधारित अनुप्रयोगों की आर्किटेक्चर को सरल बनाता है। 5. **संस्करण और ट्रैफ़िक विभाजन**: आप अपने अनुप्रयोग के कई संस्करणों को आसानी से तैनात कर सकते हैं और फिर A/B परीक्षण या क्रमिक रोलआउट के लिए उनके बीच ट्रैफ़िक विभाजित कर सकते हैं। 6. **अनुप्रयोग अंतर्दृष्टि**: App Engine लॉगिंग, उपयोगकर्ता प्रमाणीकरण, और अनुप्रयोगों की निगरानी और प्रबंधन के लिए डेवलपर उपकरणों का एक सूट जैसे अंतर्निहित सेवाएँ प्रदान करता है। 7. **सुरक्षा**: यह अनुप्रयोग संस्करणन, सुरक्षित कनेक्शनों के लिए SSL/TLS प्रमाणपत्र, और पहचान और पहुँच प्रबंधन जैसी अंतर्निहित सुरक्षा सुविधाएँ प्रदान करता है। ### Firewall एक साधारण **फायरवॉल** को Apps चलाने वाले उदाहरणों के लिए निम्नलिखित विकल्पों के साथ कॉन्फ़िगर किया जा सकता है:
### SA इन Apps द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट सेवा खाता **`@appspot.gserviceaccount.com`** है जिसमें परियोजना पर **Editor** भूमिका है और APP Engine उदाहरण के अंदर SAs **क्लाउड-प्लेटफ़ॉर्म स्कोप (अन्य के बीच) के साथ चलते हैं।** ### Storage स्रोत कोड और मेटाडेटा **स्वचालित रूप से बकेट में संग्रहीत किया जाता है** जिनके नाम हैं जैसे `.appspot.com` और `staging..appspot.com` और `..appspot.com` **App का हर फ़ाइल** **सामग्री के sha1 को फ़ाइल नाम के रूप में** संग्रहीत किया जाता है:
**`ae`** फ़ोल्डर के अंदर `staging..appspot.com` से, **प्रत्येक संस्करण के लिए एक फ़ोल्डर मौजूद है** जिसमें **स्रोत कोड** फ़ाइलें और **`manifest.json`** फ़ाइल है जो **App के घटकों का वर्णन करती है**: ```json {"requirements.txt":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/a270eedcbe2672c841251022b7105d340129d108","sha1Sum":"a270eedc_be2672c8_41251022_b7105d34_0129d108"},"main_test.py":{"sourceUrl":"https://storage.googleapis.com/staging.onboarding-host-98efbf97812843.appspot.com/0ca32fd70c953af94d02d8a36679153881943f32","sha1Sum":"0ca32fd7_0c953af9_4d02d8a ... ``` ### Containers वेब ऐप अंततः **एक कंटेनर के अंदर निष्पादित होगा** और **Code Build** का उपयोग कंटेनर बनाने के लिए किया जाता है। ### URLs & Regions **डिफ़ॉल्ट** वेब पृष्ठ URL **`.appspot.com`** में प्रदर्शित होगा, हालांकि पुराने संस्करणों का URL थोड़ा अलग होगा, जैसे **`https://20240117t001540-dot-.uc.r.appspot.com`** (प्रारंभिक टाइमस्टैम्प को नोट करें)। यह लग सकता है कि प्रति क्षेत्र केवल 1 ऐप इंजन वेब एप्लिकेशन तैनात करना संभव है, लेकिन **`app.yml`** में **`service: `** निर्दिष्ट करना संभव है और एक नई सेवा (एक नया वेब) बनाना संभव है। इस नए वेब के लिए URL का प्रारूप होगा **`-dot-.appspot.com`**। ### Enumeration > [!CAUTION] > हर बार जब आप ऐप में एक नया कोड अपलोड करते हैं, **एक नया संस्करण बनाया जाता है**। **सभी संस्करण संग्रहीत होते हैं** और उनके पास **उन्हें एक्सेस करने के लिए एक URL होता है**। इसलिए पुराने संस्करण के कोड को संशोधित करना **एक महान स्थायी तकनीक** हो सकता है। Cloud Functions की तरह, **ऐप्लिकेशन के रन-टाइम पर पर्यावरण चर के माध्यम से एक्सेस किए गए रहस्यों पर निर्भर होने की संभावना है**। ये चर एक **`app.yaml`** फ़ाइल में संग्रहीत होते हैं जिसे निम्नलिखित तरीके से एक्सेस किया जा सकता है: ```bash # List the apps gcloud app services list gcloud app services describe # Access via browser to the specified app gcloud app services browse # Get App versions gcloud app versions list # Get all the info of the app and version, included specific verion URL and the env gcloud app versions describe -s # Logs gcloud app logs tail -s # Instances ## This is only valid if a flexible environment is used and not a standard one gcloud app instances list gcloud app instances describe -s --version ## Connect to the instance via ssh gcloud app instances ssh --service --version # Firewalls gcloud app firewall-rules list gcloud app firewall-rules describe # Get domains gcloud app domain-mappings list gcloud app domain-mappings describe # SSl certificates gcloud app ssl-certificates list gcloud app ssl-certificates describe ``` ### विशेषाधिकार वृद्धि {{#ref}} ../gcp-privilege-escalation/gcp-appengine-privesc.md {{#endref}} ### अनधिकृत Enum {{#ref}} ../gcp-unauthenticated-enum-and-access/gcp-app-engine-unauthenticated-enum.md {{#endref}} ### पोस्ट एक्सप्लोइटेशन {{#ref}} ../gcp-post-exploitation/gcp-app-engine-post-exploitation.md {{#endref}} ### स्थिरता {{#ref}} ../gcp-persistence/gcp-app-engine-persistence.md {{#endref}} {{#include ../../../banners/hacktricks-training.md}}