Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
baserunner — Инструмент для исследования хранилищ данных Firebase. | Kitploit
Инструменты/GitHubGitHub/iosiro/baserunner
ЭксплуатацияСбор информацииВеб-безопасностьТестирование на ПроникновениеБезопасность облачных средБезопасность Баз Данных
GitHubiosiro/baserunner

baserunner

Инструмент для исследования хранилищ данных Firebase.

Репозиторий
240211 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Baserunner

Инструмент для исследования и эксплуатации хранилищ данных Firebase. Смотрите эту статью в нашем блоге для обзора того, как работает Firebase и почему мы разработали этот инструмент.

Установка

  1. git clone https://github.com/iosiro/baserunner.git
  2. cd baserunner
  3. npm install
  4. npm run build
  5. npm start
  6. Перейдите по адресу http://localhost:47710 в вашем браузере.

Использование

Интерфейс Baserunner выглядит так:

Сначала используйте текстовое поле конфигурации, чтобы загрузить JSON-структуру конфигурации Firebase из приложения, которое вы хотите протестировать. Она выглядит так:

root@kitploit:~
{
  "apiKey": "API_KEY",
  "authDomain": "PROJECT_ID.firebaseapp.com",
  "databaseURL": "https://PROJECT_ID.firebaseio.com",
  "projectId": "PROJECT_ID",
  "storageBucket": "PROJECT_ID.appspot.com",
  "messagingSenderId": "SENDER_ID",
  "appId": "APP_ID",
  "measurementId": "G-MEASUREMENT_ID",
  "databaseURL": "https://PROJECT_ID.firebasedatabase.app/"
}

Затем войдите как обычный пользователь, либо по электронной почте и паролю, либо по номеру мобильного телефона. При входе по номеру мобильного телефона заполните CAPTCHA перед отправкой номера. После этого вам будет предложено ввести OTP из SMS. Введите его без заполнения CAPTCHA, чтобы завершить вход. Обратите внимание, что вы можете пропустить этот шаг для тестирования запросов без аутентификации.

Наконец, вы можете использовать интерфейс запросов для отправки запросов в Cloud Firestore, Realtime Database и Firebase Storage приложения. Baserunner предоставляет несколько шаблонных запросов для типовых действий. Нажмите на один из них, чтобы загрузить его в текстовое поле, и замените значения, выглядящие как ==LIKE THIS==, на действительные имена коллекций, идентификаторы, поля, пути к файлам и т.д.

Поскольку нет способа получить список доступных коллекций с помощью Firebase JavaScript SDK, вам нужно будет угадать их или получить их имена из фронтенд-кода JavaScript целевого приложения.

Baserunner также может выполнять запросы к bucket'ам Firebase Storage. В настоящее время инструмент поддерживает просмотр каталогов и загрузку файлов. Чтобы использовать это, убедитесь, что ваша конфигурация Firebase включает поле storageBucket. Операции с хранилищем будут работать с той же аутентификацией, что и ваши запросы к базе данных.

Часто задаваемые вопросы (FAQ)

Как узнать, использует ли приложение Cloud Firestore или Realtime Database?

Приложения, использующие Realtime Database, будут иметь ключ databaseURL в своих объектах конфигурации. Приложения без этого ключа можно считать использующими Cloud Firestore. Обратите внимание, что приложения Firebase могут использовать оба хранилища, поэтому в случае сомнений выполняйте запросы обоих типов.

Я получаю блокировку из-за CORS!

Для корректной работы Baserunner ожидает, что приложения будут принимать запросы с localhost, что включено по умолчанию. Поэтому Baserunner нельзя использовать в качестве хостируемого приложения.

Если запросы с localhost запрещены тестируемым приложением, можно запустить версию Baserunner с сокращенным набором функций, открыв dist/index.html в браузере. Обратите внимание, что такой способ запуска Baserunner поддерживает только вход по электронной почте + паролю, а не по телефону.

Как узнать, какие коллекции запрашивать?

Cloud Firestore: По соображениям безопасности клиентский JavaScript API Firebase не предоставляет механизма для перечисления коллекций. Вам нужно будет вывести их, изучив JavaScript-код целевого приложения и сделав обоснованные предположения.

Realtime Database: Поскольку это хранилище представлено в виде JSON-объекта, вы можете использовать предоставленный запрос «[Realtime Database] Read datastore», чтобы попытаться просмотреть всё целиком. Обратите внимание, что это может не сработать в зависимости от настроенных правил.

Как узнать, какие файлы находятся в Firebase Storage?

Попробуйте сначала вывести содержимое корня (/). Если это защищено, посмотрите, к каким файлам обращается тестируемое приложение. Возможно, стоит попробовать папки вроде /uploads или /images.

Могу ли я увидеть результаты предыдущих запросов?

Хотя на странице Baserunner отображается только последний результат запроса, все результаты записываются в консоль браузера.

При выполнении запросов Realtime Database я получаю ошибку о том, что клиент офлайн.

Попробуйте повторно выполнить запрос.

Как войти через Google?

  1. Найдите идентификатор Google OAuth Client ID приложения (т.е. NUMERIC_STR-ALPHANUMERIC_STR.apps.googleusercontent.com). Вы можете сделать это, нажав «Войти через Google» на сайте, проверив HTML и выполнив поиск apps.googleusercontent.com.

  2. Отредактируйте ваш DNS-файл (/etc/hosts в Linux и macOS, C:\Windows\system32\drivers\etc\hosts в Windows) и добавьте следующую строку:

root@kitploit:~
127.0.0.1 PROJECT_ID.firebaseapp.com
  1. В каталоге Baserunner выполните следующую команду для создания самоподписанного сертификата:
root@kitploit:~
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./selfsigned.key -out selfsigned.crt

На запросы можно оставить все поля пустыми, кроме Common Name (например, FQDN сервера или ВАШЕ имя) [], которое следует установить в PROJECT_ID.firebaseapp.com.

  1. Очистите все данные веб-сайта, относящиеся к PROJECT_ID.firebaseapp.com, в настройках браузера (или используйте свежий браузер), чтобы предотвратить блокировку соединения из-за несоответствия сертификата (HSTS).

Если вы используете DNS-over-TLS или DNS-over-HTTPS в браузере, который используете для Baserunner, временно отключите их, чтобы подделать необходимый источник для входа через Google в Firebase.

  1. Запустите Baserunner с помощью npm run startssl, а затем загрузите https://PROJECT_ID.firebaseapp.com в вашем браузере.

  2. Введите найденный в шаге 1 Google OAuth Client в поле под «Log in with Google» и нажмите «Set Google client ID».

  3. Нажмите кнопку входа через Google и войдите, используя учетную запись Google, с которой вы зарегистрировались в приложении.

  4. Нажмите кнопку «Set Google login».

  5. Исследуйте базу данных, как с обычной учетной записью (не Google).

  6. После завершения тестирования безопасности удалите строку из шага 2 из вашего DNS-файла.

Скачать инструмент