GCP - Firebase Enum
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Die Firebase Realtime Database ist eine cloudbasierte NoSQL-Datenbank, die es dir ermöglicht, Daten in Echtzeit zwischen deinen Benutzern zu speichern und zu synchronisieren. Erfahre mehr.
Einige Firebase-Endpunkte könnten in mobilen Anwendungen gefunden werden. Es ist möglich, dass der verwendete Firebase-Endpunkt schlecht konfiguriert ist und jedem Berechtigungen zum Lesen (und Schreiben) gewährt.
Dies ist die gängige Methodik, um schlecht konfigurierte Firebase-Datenbanken zu suchen und auszunutzen:
Hole die APK der App, du kannst eines der Tools verwenden, um die APK von dem Gerät für diesen POC zu erhalten. Du kannst “APK Extractor” verwenden https://play.google.com/store/apps/details?id=com.ext.ui&hl=e
Decompile die APK mit apktool, folge dem untenstehenden Befehl, um den Quellcode aus der APK zu extrahieren.
Gehe zu res/values/strings.xml und suche nach diesem und suche nach dem Schlüsselwort “firebase”
Du könntest etwas wie diese URL finden “https://xyz.firebaseio.com/”
Gehe als Nächstes zum Browser und navigiere zur gefundenen URL: https://xyz.firebaseio.com/.json
Es können 2 Arten von Antworten erscheinen:
“Zugriff verweigert”: Das bedeutet, dass du keinen Zugriff darauf hast, also ist es gut konfiguriert
“null” Antwort oder eine Menge von JSON-Daten: Das bedeutet, dass die Datenbank öffentlich ist und du mindestens Lesezugriff hast.
In diesem Fall könntest du nach Schreibberechtigungen suchen, ein Exploit, um Schreibberechtigungen zu testen, kann hier gefunden werden: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit
Interessante Anmerkung: Wenn du eine mobile Anwendung mit MobSF analysierst, wird überprüft, ob eine Firebase-Datenbank öffentlich verfügbar ist, und es wird eine Benachrichtigung ausgegeben.
Alternativ kannst du Firebase Scanner verwenden, ein Python-Skript, das die oben genannte Aufgabe automatisiert, wie unten gezeigt:
Wenn Sie über Anmeldeinformationen zum Zugriff auf die Firebase-Datenbank verfügen, können Sie ein Tool wie Baserunner verwenden, um einfacher auf die gespeicherten Informationen zuzugreifen. Oder ein Skript wie das folgende:
Um andere Aktionen in der Datenbank zu testen, wie z.B. das Schreiben in die Datenbank, siehe die Pyrebase4-Dokumentation, die hier zu finden ist.
Wenn Sie die iOS-Anwendung dekompilieren und die Datei GoogleService-Info.plist
öffnen und den API-Schlüssel und die APP-ID finden:
API-SCHLÜSSEL AIzaSyAs1[...]
APP-ID 1:612345678909:ios:c212345678909876
Möglicherweise können Sie auf einige interessante Informationen zugreifen.
Anfrage
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"}'
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)