Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
baserunner — 用于探索 Firebase 数据存储的工具。 | Kitploit
工具/GitHubGitHub/iosiro/baserunner
漏洞利用信息收集Web安全渗透测试云安全数据库安全
GitHubiosiro/baserunner

baserunner

用于探索 Firebase 数据存储的工具。

查看仓库
24021161年前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 界面如下所示:

首先,使用配置文本框从您要测试的应用中加载 Firebase 配置 JSON 结构。它看起来像这样:

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

然后以普通用户身份登录,可以使用电子邮件和密码,也可以使用手机号码。使用手机号码登录时,请在提交号码前完成验证码。随后系统会提示您输入短信中的一次性密码(OTP)。无需完成验证码即可输入该密码来完成登录。请注意,您可以跳过此步骤,以便在没有身份验证的情况下测试查询。

最后,您可以使用查询界面向应用的 Cloud Firestore、Realtime Database 和 Firebase Storage 提交查询。Baserunner 为常见操作提供了许多模板查询。单击其中一个将其加载到文本框中,并将 ==LIKE THIS== 形式的值替换为有效的集合名称、ID、字段、文件路径等。

由于无法使用 Firebase JavaScript SDK 获取可用集合列表,您需要猜测这些名称,或者从目标应用的前端 JavaScript 中获取它们。

Baserunner 也可以查询 Firebase Storage 存储桶。目前,该工具支持列出目录和下载文件。要使用此功能,请确保您的 Firebase 配置包含 storageBucket 字段。存储操作将与数据库查询使用相同的身份验证。

常见问题

如何判断应用使用的是 Cloud Firestore 还是 Realtime Database?

使用 Realtime Database 的应用会在配置对象中有一个 databaseURL 键。没有此键的应用可以假定为使用 Cloud Firestore。请注意,Firebase 应用也可以同时使用两种数据存储,因此如果不确定,可以运行两种类型的查询。

我遇到了 CORS 错误!

为了按预期工作,Baserunner 期望应用接受来自 localhost 的请求,这是默认启用的。因此,Baserunner 无法作为托管应用使用。

如果正在测试的应用禁止来自 localhost 的请求,您仍然可以通过在浏览器中打开 dist/index.html 来运行功能受限的 Baserunner 版本。请注意,这种运行方式只支持电子邮件+密码登录,不支持手机登录。

我如何知道要查询哪些集合?

Cloud Firestore:出于安全原因,Firebase 的客户端 JavaScript API 不提供列出集合的机制。您需要查看目标应用的 JavaScript 代码并进行合理推断。

Realtime Database:由于此数据存储以 JSON 对象表示,您可以使用提供的“[Realtime Database] 读取数据存储”查询来尝试查看整个内容。请注意,此操作可能因配置的规则而失败。

我如何知道 Firebase Storage 中有哪些文件?

首先尝试列出根目录 (/)。如果根目录受到保护,请查看您正在测试的应用正在访问哪些文件。您可能想尝试像 /uploads 或 /images 这样的文件夹。

我能看到之前的查询结果吗?

虽然 Baserunner 页面只显示最新的查询结果,但所有结果都会记录到浏览器控制台中。

运行 Realtime Database 查询时,出现客户端离线的错误。

尝试重新运行查询。

如何用 Google 账号登录?

  1. 找到应用的 Google OAuth 客户端 ID(例如 NUMERIC_STR-ALPHANUMERIC_STR.apps.googleusercontent.com)。您可以通过在网站上点击“使用 Google 登录”,检查 HTML 并搜索 apps.googleusercontent.com 来找到它。

  2. 编辑您的 DNS 文件(Linux 和 macOS 上为 /etc/hosts,Windows 上为 C:\Windows\system32\drivers\etc\hosts),并添加以下行:

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 (e.g. server FQDN or YOUR name) []”除外,您应将其设置为 PROJECT_ID.firebaseapp.com。

  1. 从浏览器设置中清除与 PROJECT_ID.firebaseapp.com 相关的所有网站数据(或者使用全新的浏览器),以防止浏览器因证书不匹配(HSTS)而阻止您的连接。

如果您在用于 Baserunner 的浏览器上使用了 DNS-over-TLS 或 DNS-over-HTTPS,请暂时禁用它,以便在 Firebase 上伪造 Google 登录所需的来源。

  1. 使用 npm run startssl 运行 Baserunner,然后在浏览器中加载 https://PROJECT_ID.firebaseapp.com。

  2. 将您在步骤 1 中找到的 Google OAuth 客户端 ID 输入到“使用 Google 登录”下的字段中,然后点击“设置 Google 客户端 ID”。

  3. 点击 Google 登录按钮,使用您为该应用注册的 Google 账号登录。

  4. 点击“设置 Google 登录”按钮。

  5. 像使用非 Google 账号一样探索数据库。

  6. 完成安全测试后,从步骤 2 的 DNS 文件中删除添加的行。

下载工具