# GCP - Firebase Enum {{#include ../../../banners/hacktricks-training.md}} ## [Firebase](https://cloud.google.com/sdk/gcloud/reference/firebase/) Firebase Realtime Database एक क्लाउड-होस्टेड NoSQL डेटाबेस है जो आपको अपने उपयोगकर्ताओं के बीच डेटा को रीयलटाइम में स्टोर और सिंक करने की अनुमति देता है। [Learn more](https://firebase.google.com/products/realtime-database/). ### Unauthenticated Enum कुछ **Firebase endpoints** **मोबाइल एप्लिकेशन** में पाए जा सकते हैं। यह संभव है कि उपयोग किया गया Firebase endpoint **खराब तरीके से कॉन्फ़िगर किया गया हो जिससे सभी को पढ़ने (और लिखने) की अनुमति मिलती है**। यह खराब कॉन्फ़िगर किए गए Firebase डेटाबेस को खोजने और शोषण करने की सामान्य पद्धति है: 1. **APK प्राप्त करें** उस ऐप का, आप इस POC के लिए डिवाइस से APK प्राप्त करने के लिए किसी भी टूल का उपयोग कर सकते हैं।\ आप “APK Extractor” का उपयोग कर सकते हैं [https://play.google.com/store/apps/details?id=com.ext.ui\&hl=e](https://hackerone.com/redirect?signature=3774f35d1b5ea8a4fd209d80084daa9f5887b105&url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.ext.ui%26hl%3Den) 2. **APK को डिकंपाइल करें** **apktool** का उपयोग करके, APK से स्रोत कोड निकालने के लिए नीचे दिए गए कमांड का पालन करें। 3. _**res/values/strings.xml**_ पर जाएं और “**firebase**” कीवर्ड के लिए **खोजें**। 4. आप इस URL की तरह कुछ पा सकते हैं “_**https://xyz.firebaseio.com/**_”। 5. अगला, ब्राउज़र में जाएं और **पाई गई URL पर नेविगेट करें**: _https://xyz.firebaseio.com/.json_। 6. 2 प्रकार की प्रतिक्रियाएँ प्रकट हो सकती हैं: 1. “**Permission Denied**”: इसका मतलब है कि आप इसे एक्सेस नहीं कर सकते, इसलिए यह अच्छी तरह से कॉन्फ़िगर किया गया है। 2. “**null**” प्रतिक्रिया या **JSON डेटा** का एक समूह: इसका मतलब है कि डेटाबेस सार्वजनिक है और आपके पास कम से कम पढ़ने की अनुमति है। 1. इस मामले में, आप **लिखने की अनुमतियों** की जांच कर सकते हैं, लिखने की अनुमतियों का परीक्षण करने के लिए एक शोषण यहाँ पाया जा सकता है: [https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit](https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit) **दिलचस्प नोट**: जब **MobSF** के साथ एक मोबाइल एप्लिकेशन का विश्लेषण करते समय, यदि यह एक firebase डेटाबेस पाता है तो यह जांच करेगा कि क्या यह **सार्वजनिक रूप से उपलब्ध** है और इसे सूचित करेगा। वैकल्पिक रूप से, आप [Firebase Scanner](https://github.com/shivsahni/FireBaseScanner) का उपयोग कर सकते हैं, एक पायथन स्क्रिप्ट जो ऊपर दिए गए कार्य को स्वचालित करती है जैसा कि नीचे दिखाया गया है: ```bash python FirebaseScanner.py -f ``` ### Authenticated Enum यदि आपके पास Firebase डेटाबेस तक पहुँचने के लिए क्रेडेंशियल्स हैं, तो आप संग्रहीत जानकारी तक अधिक आसानी से पहुँचने के लिए [**Baserunner**](https://github.com/iosiro/baserunner) जैसे टूल का उपयोग कर सकते हैं। या निम्नलिखित की तरह एक स्क्रिप्ट: ```python #Taken from https://blog.assetnote.io/bug-bounty/2020/02/01/expanding-attack-surface-react-native/ #Install pyrebase: pip install pyrebase4 import pyrebase config = { "apiKey": "FIREBASE_API_KEY", "authDomain": "FIREBASE_AUTH_DOMAIN_ID.firebaseapp.com", "databaseURL": "https://FIREBASE_AUTH_DOMAIN_ID.firebaseio.com", "storageBucket": "FIREBASE_AUTH_DOMAIN_ID.appspot.com", } firebase = pyrebase.initialize_app(config) db = firebase.database() print(db.get()) ``` अन्य क्रियाओं का परीक्षण करने के लिए, जैसे कि डेटाबेस में लिखना, Pyrebase4 दस्तावेज़ीकरण का संदर्भ लें जो [यहां](https://github.com/nhorvath/Pyrebase4) पाया जा सकता है। ### APPID और API Key के साथ जानकारी तक पहुँचें यदि आप iOS एप्लिकेशन को डिकंपाइल करते हैं और फ़ाइल `GoogleService-Info.plist` खोलते हैं और आपको API Key और APP ID मिलती है: - API KEY **AIzaSyAs1\[...]** - APP ID **1:612345678909:ios:c212345678909876** आप कुछ दिलचस्प जानकारी तक पहुँचने में सक्षम हो सकते हैं **अनुरोध** `curl -v -X POST "https://firebaseremoteconfig.googleapis.com/v1/projects/612345678909/namespaces/firebase:fetch?key=AIzaSyAs1[...]" -H "Content-Type: application/json" --data '{"appId": "1:612345678909:ios:c212345678909876", "appInstanceId": "PROD"}'` ## संदर्भ - ​[https://blog.securitybreached.org/2020/02/04/exploiting-insecure-firebase-database-bugbounty/](https://blog.securitybreached.org/2020/02/04/exploiting-insecure-firebase-database-bugbounty/)​ - ​[https://medium.com/@danangtriatmaja/firebase-database-takover-b7929bbb62e1](https://medium.com/@danangtriatmaja/firebase-database-takover-b7929bbb62e1)​ {{#include ../../../banners/hacktricks-training.md}}