GCP - Firebase Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Firebase Realtime Database - це хостована в хмарі NoSQL база даних, яка дозволяє зберігати та синхронізувати дані між вашими користувачами в реальному часі. Дізнайтеся більше.
Деякі Firebase кінцеві точки можуть бути знайдені в мобільних додатках. Можливо, що використана Firebase кінцева точка погано налаштована, надаючи всім привілеї на читання (і запис).
Це загальна методологія для пошуку та експлуатації погано налаштованих 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, який автоматизує вищеописане завдання, як показано нижче:
Якщо у вас є облікові дані для доступу до бази даних Firebase, ви можете використовувати інструмент, такий як Baserunner, щоб легше отримати доступ до збереженої інформації. Або скрипт, подібний до наступного:
Щоб протестувати інші дії з базою даних, такі як запис у базу даних, зверніться до документації Pyrebase4, яку можна знайти тут.
Якщо ви декомпілюєте 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"}'
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)