GCP - Firebase Enum
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Firebase
Η Firebase Realtime Database είναι μια βάση δεδομένων NoSQL που φιλοξενείται στο cloud και σας επιτρέπει να αποθηκεύετε και να συγχρονίζετε δεδομένα μεταξύ των χρηστών σας σε πραγματικό χρόνο. Μάθετε περισσότερα.
Unauthenticated Enum
Ορισμένα Firebase endpoints μπορεί να βρεθούν σε κινητές εφαρμογές. Είναι πιθανό ότι το Firebase endpoint που χρησιμοποιείται είναι κακώς διαμορφωμένο δίνοντας σε όλους δικαιώματα ανάγνωσης (και εγγραφής) σε αυτό.
Αυτή είναι η κοινή μεθοδολογία για την αναζήτηση και εκμετάλλευση κακώς διαμορφωμένων βάσεων δεδομένων Firebase:
- Πάρτε το APK της εφαρμογής, μπορείτε να χρησιμοποιήσετε οποιοδήποτε εργαλείο για να αποκτήσετε το APK από τη συσκευή για αυτήν την POC.
Μπορείτε να χρησιμοποιήσετε το “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, ένα script python που αυτοματοποιεί την παραπάνω εργασία όπως φαίνεται παρακάτω:
python FirebaseScanner.py -f <commaSeperatedFirebaseProjectNames>
Authenticated Enum
Αν έχετε διαπιστευτήρια για να αποκτήσετε πρόσβαση στη βάση δεδομένων Firebase, μπορείτε να χρησιμοποιήσετε ένα εργαλείο όπως το Baserunner για να αποκτήσετε πιο εύκολα τις αποθηκευμένες πληροφορίες. Ή ένα σενάριο όπως το παρακάτω:
#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 που μπορείτε να βρείτε εδώ.
Πρόσβαση σε πληροφορίες με 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://medium.com/@danangtriatmaja/firebase-database-takover-b7929bbb62e1
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

