GCP - Firebase Enum

शून्य से नायक तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Firebase Realtime Database एक क्लाउड-होस्टेड NoSQL डेटाबेस है जो आपको अपने उपयोगकर्ताओं के बीच रियलटाइम में डेटा स्टोर और सिंक करने की अनुमति देता है। और जानें.

अप्रमाणित 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 का उपयोग कर सकते हैं

  2. APK को Decompile करें 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

रोचक नोट: जब MobSF के साथ मोबाइल एप्लिकेशन का विश्लेषण किया जाता है, अगर यह एक firebase डेटाबेस पाता है तो यह जांचेगा कि क्या यह सार्वजनिक रूप से उपलब्ध है और इसकी सूचना देगा।

वैकल्पिक रूप से, आप Firebase Scanner का उपयोग कर सकते हैं, एक पायथन स्क्रिप्ट जो ऊपर दिखाए गए कार्य को स्वचालित करती है:

python FirebaseScanner.py -f <commaSeperatedFirebaseProjectNames>

प्रमाणित Enum

यदि आपके पास Firebase डेटाबेस तक पहुँचने के लिए प्रमाण-पत्र हैं, तो आप Baserunner जैसे उपकरण का उपयोग करके संग्रहीत जानकारी तक अधिक आसानी से पहुँच सकते हैं। या निम्नलिखित जैसी स्क्रिप्ट का उपयोग करें:

#Taken from https://blog.assetnote.io/bug-bounty/2020/02/01/expanding-attack-surface-react-native/
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())

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"}'

संदर्भ

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated