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)
Il Firebase Realtime Database è un database NoSQL ospitato nel cloud che consente di memorizzare e sincronizzare i dati tra gli utenti in tempo reale. Scopri di più.
Alcuni endpoint di Firebase potrebbero trovarsi in applicazioni mobili. È possibile che l'endpoint di Firebase utilizzato sia configurato male concedendo a tutti i privilegi di lettura (e scrittura) su di esso.
Questa è la metodologia comune per cercare e sfruttare database Firebase mal configurati:
Ottieni l'APK dell'app, puoi utilizzare uno qualsiasi degli strumenti per ottenere l'APK dal dispositivo per questo POC. Puoi usare “APK Extractor” https://play.google.com/store/apps/details?id=com.ext.ui&hl=e
Decompila l'APK usando apktool, segui il comando qui sotto per estrarre il codice sorgente dall'APK.
Vai a res/values/strings.xml e cerca questa e cerca la parola chiave “firebase”
Potresti trovare qualcosa come questo URL “https://xyz.firebaseio.com/”
Successivamente, vai al browser e naviga all'URL trovato: https://xyz.firebaseio.com/.json
Possono apparire 2 tipi di risposte:
“Permission Denied”: Questo significa che non puoi accedervi, quindi è ben configurato
Risposta “null” o un insieme di dati JSON: Questo significa che il database è pubblico e hai almeno accesso in lettura.
In questo caso, potresti controllare i privilegi di scrittura, un exploit per testare i privilegi di scrittura può essere trovato qui: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit
Nota interessante: Quando si analizza un'applicazione mobile con MobSF, se trova un database firebase controllerà se questo è pubblicamente disponibile e lo notificherà.
In alternativa, puoi utilizzare Firebase Scanner, uno script python che automatizza il compito sopra come mostrato di seguito:
Se hai le credenziali per accedere al database Firebase, puoi utilizzare uno strumento come Baserunner per accedere più facilmente alle informazioni memorizzate. Oppure uno script come il seguente:
Per testare altre azioni sul database, come la scrittura nel database, fare riferimento alla documentazione di Pyrebase4 che può essere trovata qui.
Se decompili l'applicazione iOS e apri il file GoogleService-Info.plist
e trovi la API Key e l'APP ID:
API KEY AIzaSyAs1[...]
APP ID 1:612345678909:ios:c212345678909876
Potresti essere in grado di accedere ad alcune informazioni interessanti
Richiesta
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"}'
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)