GCP - Firebase Enum

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Firebase Gerçek Zamanlı Veritabanı, kullanıcılarınız arasında veri depolamanıza ve senkronize etmenize olanak tanıyan bulut tabanlı bir NoSQL veritabanıdır. Daha fazla bilgi edinin.

Kimlik Doğrulamasız Sıralama

Bazı Firebase uç noktaları, mobil uygulamalarda bulunabilir. Kötü yapılandırılmış bir Firebase uç noktasının, herkese okuma (ve yazma) yetkisi verdiği olasıdır.

Kötü yapılandırılmış Firebase veritabanlarını aramak ve istismar etmek için genel olarak aşağıdaki metodoloji kullanılır:

  1. Bu POC için cihazdan APK almak için herhangi bir aracı kullanabilirsiniz. “APK Extractor” kullanabilirsiniz https://play.google.com/store/apps/details?id=com.ext.ui&hl=e

  2. APK'yi apktool kullanarak decompile edin, aşağıdaki komutu izleyerek APK'dan kaynak kodunu çıkarın.

  3. res/values/strings.xml dizinine gidin ve burada "firebase" anahtar kelimesini aramaya başlayın

  4. "https://xyz.firebaseio.com/" gibi bir URL bulabilirsiniz

  5. Sonra, tarayıcıya gidin ve bulunan URL'ye gidin: https://xyz.firebaseio.com/.json

  6. 2 tür yanıt görünebilir:

    1. "İzin Reddedildi": Buna erişemezsiniz, yani iyi yapılandırılmıştır

    2. "null" yanıtı veya bir dizi JSON verisi: Bu, veritabanının herkese açık olduğunu ve en azından okuma erişiminizin olduğunu gösterir.

    3. Bu durumda, yazma yetkilerini kontrol edebilirsiniz, yazma yetkilerini test etmek için bir istismar burada bulunabilir: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit

İlginç not: MobSF ile bir mobil uygulama analiz ederken, bir firebase veritabanı bulursa bunun herkese açık olup olmadığını kontrol eder ve bildirimde bulunur.

Alternatif olarak, yukarıda gösterildiği gibi bu görevi otomatikleştiren bir python betiği olan Firebase Scanner kullanabilirsiniz.

python FirebaseScanner.py -f <commaSeperatedFirebaseProjectNames>

Yetkilendirilmiş Enum

Firebase veritabanına erişmek için kimlik bilgileriniz varsa, Baserunner gibi bir araç kullanarak depolanan bilgilere daha kolay erişebilirsiniz. Veya aşağıdaki gibi bir betik kullanabilirsiniz:

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

Veritabanında yazma gibi diğer işlemleri test etmek için, buradan Pyrebase belgelerine başvurun.

APPID ve API Anahtarı ile Erişim Bilgilerine Erişim

iOS uygulamasını decompile edip GoogleService-Info.plist dosyasını açarsanız, API Anahtarı ve APP ID'sini bulabilirsiniz:

  • API ANAHTARI AIzaSyAs1[...]

  • APP ID 1:612345678909:ios:c212345678909876

Bazı ilginç bilgilere erişebilirsiniz.

İstek

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

Referanslar

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated