GCP - Firebase Enum
База даних Firebase Realtime - це хмарна 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, щоб отримати більш легкий доступ до збереженої інформації. Або скрипт, подібний до наступного:
Доступ до інформації за допомогою 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"}'
Посилання
Last updated