GCP - Firebase Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Firebase Realtime Database एक क्लाउड-होस्टेड NoSQL डेटाबेस है जो आपको अपने उपयोगकर्ताओं के बीच डेटा को रीयलटाइम में स्टोर और सिंक करने की अनुमति देता है। Learn more।
कुछ Firebase endpoints मोबाइल एप्लिकेशन में पाए जा सकते हैं। यह संभव है कि उपयोग किया गया Firebase endpoint खराब तरीके से कॉन्फ़िगर किया गया हो जिससे सभी को पढ़ने (और लिखने) के लिए विशेषाधिकार मिलते हैं।
यह खराब कॉन्फ़िगर किए गए Firebase डेटाबेस को खोजने और शोषण करने की सामान्य पद्धति है:
APK प्राप्त करें उस ऐप का, आप इस POC के लिए डिवाइस से APK प्राप्त करने के लिए किसी भी टूल का उपयोग कर सकते हैं। आप “APK Extractor” का उपयोग कर सकते हैं https://play.google.com/store/apps/details?id=com.ext.ui&hl=e
APK को डिकंपाइल करें apktool का उपयोग करके, APK से स्रोत कोड निकालने के लिए नीचे दिए गए कमांड का पालन करें।
res/values/strings.xml पर जाएं और इस पर नज़र डालें और “firebase” कीवर्ड के लिए खोजें।
आपको इस URL जैसा कुछ मिल सकता है “https://xyz.firebaseio.com/”।
अगला, ब्राउज़र पर जाएं और पाई गई URL पर नेविगेट करें: https://xyz.firebaseio.com/.json।
2 प्रकार की प्रतिक्रियाएँ प्रकट हो सकती हैं:
“Permission Denied”: इसका मतलब है कि आप इसे एक्सेस नहीं कर सकते, इसलिए यह अच्छी तरह से कॉन्फ़िगर किया गया है।
“null” प्रतिक्रिया या JSON डेटा का एक गुच्छा: इसका मतलब है कि डेटाबेस सार्वजनिक है और आपके पास कम से कम पढ़ने का अधिकार है।
इस मामले में, आप लिखने के विशेषाधिकार की जांच कर सकते हैं, लिखने के विशेषाधिकार का परीक्षण करने के लिए एक शोषण यहाँ पाया जा सकता है: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit
दिलचस्प नोट: जब MobSF के साथ एक मोबाइल एप्लिकेशन का विश्लेषण करते समय, यदि यह एक firebase डेटाबेस पाता है तो यह जांच करेगा कि क्या यह सार्वजनिक रूप से उपलब्ध है और इसे सूचित करेगा।
वैकल्पिक रूप से, आप Firebase Scanner का उपयोग कर सकते हैं, एक पायथन स्क्रिप्ट जो ऊपर दिए गए कार्य को स्वचालित करती है जैसा कि नीचे दिखाया गया है:
यदि आपके पास Firebase डेटाबेस तक पहुँचने के लिए क्रेडेंशियल्स हैं, तो आप संग्रहीत जानकारी तक अधिक आसानी से पहुँचने के लिए Baserunner जैसे टूल का उपयोग कर सकते हैं। या निम्नलिखित की तरह एक स्क्रिप्ट:
To test other actions on the database, such as writing to the database, refer to the Pyrebase4 documentation which can be found here.
यदि आप iOS एप्लिकेशन को डिकंपाइल करते हैं और फ़ाइल GoogleService-Info.plist
खोलते हैं और आपको API Key और APP ID मिलती है:
API KEY AIzaSyAs1[...]
APP ID 1:612345678909:ios:c212345678909876
आप कुछ दिलचस्प जानकारी तक पहुँच सकते हैं
Request
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"}'
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)