Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
MongoBleed-exploit — MongoBleed (CVE-2025-14847) 实验室与PoC:一个完整的教学环境,用于重现MongoDB中严重的未认证内存泄漏。包括一个带有多个数据库种子数据(PII、API密钥)的易受攻击的Docker容器,以及一个演示数据提取的Python漏洞利用。非常适合安全研究和意识提升。1-day分析。 | Kitploit
工具/GitHubGitHub/eljoamy/mongobleed-exploit
内存取证漏洞分析漏洞利用CTF渗透测试学习与教育数据库安全实验室与实践
GitHubeljoamy/mongobleed-exploit

MongoBleed-exploit

MongoBleed (CVE-2025-14847) 实验室与PoC:一个完整的教学环境,用于重现MongoDB中严重的未认证内存泄漏。包括一个带有多个数据库种子数据(PII、API密钥)的易受攻击的Docker容器,以及一个演示数据提取的Python漏洞利用。非常适合安全研究和意识提升。1-day分析。

查看仓库
98个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-14847: MongoBleed 实验室

Python      MongoDB      Docker

目录

  1. 介绍
  2. 漏洞详情
    • 工作原理
  3. 影响
  4. 实验室架构
  5. 前提条件
  6. 安装与使用
    • 1. 启动环境
    • 2. 安装依赖
    • 3. 验证实验室配置(可选)
    • 4. 运行漏洞利用程序
  7. 漏洞利用步骤
  8. 修复措施
  9. 许可证
  10. 免责声明
  11. 参考资料
  12. 作者

介绍

本实验室旨在复现并分析 MongoBleed(CVE-2025-14847),这是 MongoDB 中的一个严重漏洞。由于不当处理压缩消息,该缺陷允许未经身份验证的攻击者从服务器内存中读取敏感数据。

该环境包含一个存在漏洞的 MongoDB 实例,并填充了模拟的敏感数据(PII、API 密钥、财务记录),以演示信息泄露的严重性。

漏洞详情

CVE ID: CVE-2025-14847
名称: MongoBleed
组件: Wire Protocol (OP_COMPRESSED)
受影响版本: MongoDB 6.0.x < 6.0.27, 7.0.x < 7.0.28, 8.0.x < 8.0.17 (及其他) URL: 点击查看 -> NVD CVE-2025-14847

工作原理

该漏洞存在于 MongoDB 使用 zlib 压缩算法处理 OP_COMPRESSED 消息的方式中。

  1. 大小不匹配:攻击者发送一个压缩消息,其中头部的 uncompressed_size 字段被有意设置为远大于实际解压后数据大小的值。
  2. 内存分配:服务器根据这个夸大的 uncompressed_size 分配一个内存缓冲区。
  3. 部分写入:zlib 解压器将实际(较小)的有效载荷写入该缓冲区的起始部分。缓冲区的其余部分保持未初始化状态,包含之前操作残留的数据(RAM 痕迹)。
  4. 信息泄露:当服务器尝试将此缓冲区解析为 BSON 文档时,它会读取超出有效数据范围的内容,进入未初始化内存。如果解析器遇到错误(这很常见),它可能会在错误消息中将“坏”数据返回给客户端。

影响

  • 未经身份验证的访问:攻击无需有效凭证。
  • 信息泄露:攻击者可以提取当前 MongoDB 进程内存中的任何内容,包括:
    • 身份验证凭证(明文密码或哈希)。
    • 其他数据库/集合中的数据。
    • 服务器配置和环境变量。
    • 活跃的会话令牌。

实验室架构

本实验室由以下部分组成:

  • 存在漏洞的服务:MongoDB 6.0.10(Docker 容器)。
  • 身份验证:已启用(admin / secretpassword)。
  • 数据填充:一个初始化脚本(init-mongo.js),用于填充 3 个不同的数据库,以模拟真实的云基础设施 SaaS 环境:
    • dbmongotesting:核心基础设施数据。
      • compute_instances:敏感的元数据(用户数据脚本、API 密钥)。
      • deployment_secrets:高价值目标(K8s 令牌、CI/CD 密钥、Slack Webhooks)。
    • identity_provider:用户身份管理。
      • users:用户凭证、密码哈希(Argon2)和 MFA 备份码(以明文形式泄露)。
    • system_audit:日志与监控。
      • query_logs:包含历史查询,有些包括泄露的凭证(例如 AWS 密钥)。
  • 漏洞利用程序:一个实现逆向工程协议攻击的 Python 脚本(exploit.py)。

前提条件

  • Docker
  • Docker Compose
  • Python 3

安装与使用

1. 启动环境

启动存在漏洞的容器。这将自动创建数据库并填充数据。

root@kitploit:~
docker-compose up -d

等待大约 10-15 秒,让数据库初始化并加载数据。

注意: 如果您之前运行过本实验室,请确保重置卷以加载最新的数据结构:

root@kitploit:~
docker-compose down -v
docker-compose up -d

2. 安装依赖

您可以使用 pip 通过传统的 requirements.txt 或现代的 pyproject.toml 安装所需的依赖项。

选项 A:使用 requirements.txt(标准)

root@kitploit:~
pip install -r requirements.txt

选项 B:使用 pyproject.toml(现代) 这将在当前环境中安装项目及其依赖项。

root@kitploit:~
pip install .

3. 验证实验室配置(可选)

我们提供了一个验证脚本来确保数据库可达且数据已正确填充。

root@kitploit:~
python verify_lab.py

该脚本使用管理员凭证检查数据库(如 sensitive_db、legacy_crm 等)是否存在。

4. 运行漏洞利用程序

执行 Python 脚本来攻击服务器。此步骤不需要任何凭证,演示了该漏洞的未经身份验证特性。

root@kitploit:~
python exploit.py --host localhost --port 27017 --min 100 --max 5000

漏洞利用步骤

该脚本执行以下步骤:

  1. 构造一个恶意的 BSON 有效载荷。
  2. 压缩它,并将其包装在一个带有伪造夸大大小的 OP_COMPRESSED 头部中。
  3. 将其发送到目标服务器。
  4. 监听错误响应。
  5. 打印服务器响应中任何可读的文本(来自内存泄露)。

预期输出: 您应该会看到输出指示在不同偏移处发现了泄露,随后是一个检测到的秘密摘要。

root@kitploit:~
[*] MongoBleed Exploit (Custom Implementation)
[*] Target: localhost:27017
[*] Scanning memory offsets 100 to 5000...
[+] Offset 120  | ... dbmongotesting ... compute_instances ...
[+] Offset 145  | ... field name 'AKIAIOSFODNN7EXAMPLE' is not valid ... [!] FOUND AKIA
[+] Offset 210  | ... "token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ik16UTBOVFZ... [!] FOUND token

[*] Scan completed in 12.45s
[*] Total bytes leaked: 4502
[*] Unique fragments: 156

[*] Secrets Summary:
[!] Found pattern: AKIA
[!] Found pattern: token
[!] Found pattern: password

修复措施

要在生产环境中修复此漏洞:

  1. 升级:将 MongoDB 更新到已修补的版本(例如 6.0.27+、7.0.28+、8.0.17+)。
  2. 网络限制:确保 MongoDB 端口(27017)不暴露在公共互联网上。

许可证

本项目采用 MIT 许可证授权。详情请参阅 LICENSE 文件。

免责声明

本材料仅供教育和研究目的使用。请勿在您不拥有或未经明确许可测试的系统上使用此漏洞利用程序。作者不对任何滥用此信息或工具的行为负责。

参考资料

  • 利用暴露的 MongoDB 实例进行 Mongobleed 攻击:本地实验室演练
  • CVE-2025-1623

作者

ElJoamy
Joseph Meneses (ElJoamy)

后端与 AI 开发者 · 网络安全工程师 · DBA · 渗透测试员

下载工具