GCP - Firebase Enum
Η Firebase Realtime Database είναι μια βάση δεδομένων NoSQL που φιλοξενείται στο cloud και σας επιτρέπει να αποθηκεύετε και να συγχρονίζετε δεδομένα μεταξύ των χρηστών σας σε πραγματικό χρόνο. Μάθετε περισσότερα.
Απαρίθμηση χωρίς πιστοποίηση
Ορισμένα σημεία πρόσβασης Firebase μπορεί να βρεθούν σε κινητές εφαρμογές. Είναι δυνατόν το σημείο πρόσβασης Firebase που χρησιμοποιείται να είναι κακά διαμορφωμένο και να παρέχει προνόμια ανάγνωσης (και εγγραφής) σε όλους.
Αυτή είναι η κοινή μεθοδολογία για την αναζήτηση και εκμετάλλευση κακά διαμορφωμένων βάσεων δεδομένων Firebase:
Αποκτήστε το APK της εφαρμογής, μπορείτε να χρησιμοποιήσετε οποιοδήποτε εργαλείο για να αποκτήσετε το 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 είδη απαντήσεων:
"Άρνηση πρόσβασης": Αυτό σημαίνει ότι δεν μπορείτε να έχετε πρόσβαση, οπότε είναι καλά διαμορφωμένο
Απάντηση "null" ή ένα σύνολο δεδομένων JSON: Αυτό σημαίνει ότι η βάση δεδομένων είναι δημόσια και έχετε τουλάχιστον πρόσβαση ανάγνωσης.
Σε αυτήν την περίπτωση, μπορείτε να ελέγξετε τα προνόμια εγγραφής, μια εκμετάλλευση για να ελέγξετε τα προνόμια εγγραφής μπορεί να βρεθεί εδώ: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit
Ενδιαφέρουσα σημείωση: Όταν αναλύετε μια κινητή εφαρμογή με το MobSF, αν βρει μια βάση δεδομένων firebase, θα ελέγξει εάν αυτή είναι δημόσια διαθέσιμη και θα το ειδοποιήσει.
Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το Firebase Scanner, ένα script python που αυτοματοποιεί την παραπάνω εργασία όπως φαίνεται παρακάτω:
Απαρίθμηση με πιστοποίηση
Εάν έχετε διαπιστευτήρια για πρόσβαση στη βάση δεδομένων Firebase, μπορείτε να χρησιμοποιήσετε ένα εργαλείο όπως το Baserunner για να έχετε πιο εύκολη πρόσβαση στις αποθηκευμένες πληροφορίες. Ή ένα σενάριο όπως το παρακάτω:
Για να δοκιμάσετε άλλες ενέργειες στη βάση δεδομένων, όπως η εγγραφή στη βάση δεδομένων, ανατρέξτε στην τεκμηρίωση του Pyrebase που μπορείτε να βρείτε εδώ.
Πρόσβαση σε πληροφορίες με 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"}'
Αναφορές
Last updated