GCP - Firebase Enum
Reading time: 4 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Firebase
Firebase Realtime Database je NoSQL baza podataka koja se hostuje u oblaku i omogućava vam da skladištite i sinhronizujete podatke između vaših korisnika u realnom vremenu. Saznajte više.
Neautentifikovana Enum
Neki Firebase endpointi mogu se naći u mobilnim aplikacijama. Moguće je da je Firebase endpoint koji se koristi loše konfigurisan, dajući svima privilegije za čitanje (i pisanje) na njemu.
Ovo je uobičajena metodologija za pretragu i eksploataciju loše konfigurisanih Firebase baza podataka:
- Preuzmite APK aplikacije, možete koristiti bilo koji alat za preuzimanje APK-a sa uređaja za ovu POC.
Možete koristiti “APK Extractor” https://play.google.com/store/apps/details?id=com.ext.ui&hl=e - Dekompajlirajte APK koristeći apktool, pratite sledeću komandu da biste izvukli izvorni kod iz APK-a.
- Idite na res/values/strings.xml i potražite ovo i pretražujte ključnu reč “firebase”
- Možda ćete pronaći nešto poput ove URL adrese “https://xyz.firebaseio.com/”
- Zatim, idite na pregledač i navigirajte do pronađene URL adrese: https://xyz.firebaseio.com/.json
- Mogu se pojaviti 2 tipa odgovora:
- “Permission Denied”: To znači da ne možete pristupiti, tako da je dobro konfigurisan
- “null” odgovor ili gomila JSON podataka: To znači da je baza podataka javna i da imate barem pristup za čitanje.
- U ovom slučaju, mogli biste proveriti privilegije za pisanje, eksploatacija za testiranje privilegija za pisanje može se naći ovde: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit
Zanimljiva napomena: Kada analizirate mobilnu aplikaciju sa MobSF, ako pronađe firebase bazu podataka, proveriće da li je javna i obavestiće vas o tome.
Alternativno, možete koristiti Firebase Scanner, python skriptu koja automatizuje gornji zadatak kao što je prikazano u nastavku:
python FirebaseScanner.py -f <commaSeperatedFirebaseProjectNames>
Autentifikovana enumeracija
Ako imate akreditive za pristup Firebase bazi podataka, možete koristiti alat kao što je Baserunner da lakše pristupite pohranjenim informacijama. Ili skriptu poput sledeće:
#Taken from https://blog.assetnote.io/bug-bounty/2020/02/01/expanding-attack-surface-react-native/
#Install pyrebase: pip install pyrebase4
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())
Da biste testirali druge akcije na bazi podataka, kao što je pisanje u bazu podataka, pogledajte Pyrebase4 dokumentaciju koja se može naći ovde.
Informacije o pristupu sa APPID i API ključem
Ako dekompajlirate iOS aplikaciju i otvorite datoteku GoogleService-Info.plist
i pronađete API ključ i APP ID:
- API KLJUČ AIzaSyAs1[...]
- APP ID 1:612345678909:ios:c212345678909876
Možda ćete moći da pristupite nekim zanimljivim informacijama
Zahtev
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"}'
Reference
- https://blog.securitybreached.org/2020/02/04/exploiting-insecure-firebase-database-bugbounty/
- https://medium.com/@danangtriatmaja/firebase-database-takover-b7929bbb62e1
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.