GCP - Firebase Enum

Support HackTricks

Firebase Realtime Database ni hifadhidata ya NoSQL iliyowekwa kwenye wingu ambayo inaruhusu kuhifadhi na kusawazisha data kati ya watumiaji wako kwa wakati halisi. Jifunze zaidi.

Uchambuzi usiothibitishwa

Baadhi ya vielekezi vya Firebase vinaweza kupatikana kwenye programu za simu. Inawezekana kwamba kielekezi cha Firebase kilichotumika kina mipangilio mbovu inayoruhusu kila mtu kupata haki za kusoma (na kuandika).

Hii ni njia ya kawaida ya kutafuta na kutumia hifadhidata za Firebase zilizowekwa vibaya:

  1. Pata APK ya programu unaweza kutumia zana yoyote kupata APK kutoka kwa kifaa kwa POC hii. Unaweza kutumia "APK Extractor" https://play.google.com/store/apps/details?id=com.ext.ui&hl=e

  2. Gawanya APK kwa kutumia apktool, fuata amri hapa chini kutoa msimbo wa chanzo kutoka kwa APK.

  3. Nenda kwenye res/values/strings.xml na tafuta hii na tafuta kwa neno la "firebase"

  4. Unaweza kupata kitu kama URL hii "https://xyz.firebaseio.com/"

  5. Kisha, nenda kwenye kivinjari na nenda kwenye URL uliyoipata: https://xyz.firebaseio.com/.json

  6. Aina 2 za majibu yanaweza kuonekana:

  7. "Kupewa Kizuizi": Hii inamaanisha huwezi kupata, hivyo imewekwa vizuri

  8. Majibu ya "null" au seti ya data za JSON: Hii inamaanisha kuwa hifadhidata ni ya umma na angalau una haki ya kusoma.

  9. Katika kesi hii, unaweza kuangalia haki za kuandika, shambulio la kujaribu haki za kuandika linaweza kupatikana hapa: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit

Maelezo ya kuvutia: Wakati wa kuchambua programu ya simu na MobSF, ikiwa itapata hifadhidata ya firebase itaangalia ikiwa hii inapatikana kwa umma na itatoa taarifa.

Kwa hiari, unaweza kutumia Firebase Scanner, skripti ya python inayorahisisha kazi hapo juu kama inavyoonyeshwa hapa chini:

python FirebaseScanner.py -f <commaSeperatedFirebaseProjectNames>

Kuchunguza Kwa Kuidhinishwa

Ikiwa una sifa za kupata upatikanaji wa database ya Firebase unaweza kutumia chombo kama Baserunner kufikia kwa urahisi habari zilizohifadhiwa. Au script kama ifuatavyo:

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

Kupata habari kwa kutumia APPID na API Key

Ikiwa unadecompile programu ya iOS na kufungua faili GoogleService-Info.plist na kupata API Key na APP ID:

  • API KEY AIzaSyAs1[...]

  • APP ID 1:612345678909:ios:c212345678909876

Unaweza kupata habari ya kuvutia

Ombi

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

Marejeo

Last updated