GCP - Firebase Enum

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Die Firebase Realtime-databasis is 'n wolk-gehoste NoSQL-databasis wat jou in staat stel om data tussen jou gebruikers in realtime te stoor en te sinchroniseer. Leer meer.

Ongeagte Enum

Sommige Firebase-eindpunte kan gevind word in mobiele toepassings. Dit is moontlik dat die gebruikte Firebase-eindpunt sleg gekonfigureer is en almal toestemming gee om te lees (en te skryf).

Dit is die algemene metodologie om sleg gekonfigureerde Firebase-databasisse te soek en uit te buit:

  1. Kry die APK van die toepassing. Jy kan enige van die hulpmiddels gebruik om die APK van die toestel te kry vir hierdie POC. Jy kan "APK Extractor" gebruik https://play.google.com/store/apps/details?id=com.ext.ui&hl=e

  2. Dekomponeer die APK met behulp van apktool, volg die onderstaande opdrag om die bronkode uit die APK te onttrek.

  3. Gaan na die res/values/strings.xml en soek hierna en soek na die sleutelwoord "firebase"

  4. Jy mag iets soos hierdie URL vind "https://xyz.firebaseio.com/"

  5. Gaan daarna na die blaaier en navigeer na die gevonde URL: https://xyz.firebaseio.com/.json

  6. 2 tipes antwoorde kan verskyn:

  7. "Toestemming Geweier": Dit beteken dat jy nie toegang daartoe het nie, so dit is goed gekonfigureer

  8. "null" antwoord of 'n stel JSON-data: Dit beteken dat die databasis openbaar is en jy ten minste leestoegang het.

  9. In hierdie geval kan jy kyk vir skryftoestemmings, 'n uitbuiting om skryftoestemmings te toets kan hier gevind word: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit

Interessante nota: Wanneer 'n mobiele toepassing geanaliseer word met MobSF, sal dit nagaan of 'n firebase-databasis openbaar beskikbaar is en dit sal dit aandui.

Alternatiewelik kan jy Firebase Scanner gebruik, 'n Python-skrips wat die taak hierbo outomatiseer soos hieronder getoon:

python FirebaseScanner.py -f <commaSeperatedFirebaseProjectNames>

Geauthentiseerde Enum

As jy geloofsbriewe het om toegang tot die Firebase databasis te verkry, kan jy 'n instrument soos Baserunner gebruik om die gestoorde inligting makliker te ontsluit. Of 'n skripsie soos die volgende:

#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())

Om ander aksies op die databasis te toets, soos skryf na die databasis, verwys na die Pyrebase dokumentasie wat hier gevind kan word.

Toegangsinligting met APPID en API-sleutel

As jy die iOS-toepassing dekomponeer en die lêer GoogleService-Info.plist oopmaak en jy vind die API-sleutel en APP-ID:

  • API-SLEUTEL AIzaSyAs1[...]

  • APP-ID 1:612345678909:ios:c212345678909876

Jy kan dalk toegang kry tot interessante inligting.

Versoek

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

Verwysings

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated