GCP - Firebase Enum
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Firebase
Firebase Realtime Database - це хмарна NoSQL база даних, яка дозволяє зберігати та синхронізувати дані між вашими користувачами в реальному часі. Дізнайтеся більше.
Unauthenticated Enum
Деякі Firebase endpoints можуть бути знайдені в мобільних додатках. Можливо, що використаний Firebase endpoint погано налаштований, надаючи всім привілеї для читання (і запису).
Це загальна методологія для пошуку та експлуатації погано налаштованих Firebase баз даних:
- Отримайте APK додатку, ви можете використовувати будь-який з інструментів, щоб отримати APK з пристрою для цього POC.
Ви можете використовувати “APK Extractor” https://play.google.com/store/apps/details?id=com.ext.ui&hl=e - Декомпілюйте APK за допомогою apktool, дотримуйтесь наведених нижче команд, щоб витягти вихідний код з APK.
- Перейдіть до res/values/strings.xml і шукайте це, а також пошукайте ключове слово “firebase”
- Ви можете знайти щось на зразок цього URL “https://xyz.firebaseio.com/”
- Далі перейдіть до браузера і перейдіть за знайденим URL: https://xyz.firebaseio.com/.json
- Можуть з'явитися 2 типи відповідей:
- “Permission Denied”: Це означає, що ви не можете отримати доступ, отже, це добре налаштовано
- “null” відповідь або купа JSON даних: Це означає, що база даних є публічною, і у вас принаймні є доступ для читання.
- У цьому випадку ви можете перевірити привілеї запису, експлуатацію для тестування привілеїв запису можна знайти тут: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit
Цікава примітка: При аналізі мобільного додатку за допомогою MobSF, якщо він знаходить базу даних firebase, він перевірить, чи є вона публічно доступною і повідомить про це.
Альтернативно, ви можете використовувати Firebase Scanner, скрипт на python, який автоматизує вищезазначене завдання, як показано нижче:
python FirebaseScanner.py -f <commaSeperatedFirebaseProjectNames>
Authenticated Enum
Якщо у вас є облікові дані для доступу до бази даних Firebase, ви можете використовувати інструмент, такий як Baserunner, щоб легше отримати доступ до збереженої інформації. Або скрипт, подібний до наступного:
#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())
Щоб протестувати інші дії з базою даних, такі як запис у базу даних, зверніться до документації Pyrebase4, яку можна знайти тут.
Інформація доступу з APPID та API Key
Якщо ви декомпілюєте iOS-додаток і відкриєте файл GoogleService-Info.plist
, ви знайдете API Key та APP ID:
- API KEY AIzaSyAs1[...]
- APP ID 1:612345678909:ios:c212345678909876
Ви можете отримати доступ до деякої цікавої інформації
Запит
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"}'
Посилання
- https://blog.securitybreached.org/2020/02/04/exploiting-insecure-firebase-database-bugbounty/
- https://medium.com/@danangtriatmaja/firebase-database-takover-b7929bbb62e1
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.