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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-14847 — MongoDB 内存泄露漏洞 (CVE-2025-14847) 检测工具 | Kitploit
工具/GitHubGitHub/onewinner/cve-2025-14847
Vulnerability ScannersMemory ForensicsExploitationInformation GatheringPenetration TestingDatabase Security
GitHubonewinner/cve-2025-14847

CVE-2025-14847

MongoDB 内存泄露漏洞 (CVE-2025-14847) 检测工具

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

MongoDB CVE-2025-14847 漏洞检测工具

MongoDB 内存泄露漏洞 (CVE-2025-14847) 检测工具


⚠️ 重要提示:此工具仅用于授权的安全测试和漏洞评估。未经授权的使用可能违反法律。


📋 目录

  • 漏洞描述
  • 功能特性
  • 安装
  • 使用方法
  • 测试环境搭建
  • 输出示例
  • 检测原理
  • 修复建议
  • 免责声明

🔍 漏洞描述

CVE-2025-14847 是 MongoDB Zlib 压缩协议处理中的严重内存泄露漏洞。攻击者可以通过发送恶意构造的压缩数据包,导致 MongoDB 返回未初始化的堆内存数据,可能包含敏感信息。

影响版本

版本范围状态
8.2.0 - 8.2.2⚠️ 受影响
8.0.0 - 8.0.16⚠️ 受影响
7.0.0 - 7.0.27⚠️ 受影响
6.0.0 - 6.0.26⚠️ 受影响
5.0.0 - 5.0.31⚠️ 受影响
4.4.0 - 4.4.29⚠️ 受影响
4.2.x 所有版本⚠️ 受影响
4.0.x 所有版本⚠️ 受影响
3.6.x 所有版本⚠️ 受影响

漏洞危害

  • 🔴 严重性: CVSS 8.7 (高危)
  • 💾 泄露堆内存中的敏感数据
  • 🔑 可能包含密码、会话令牌、加密密钥等
  • 🚫 无需认证即可利用
  • 🌐 可远程利用

✨ 功能特性

  • ✅ 智能检测 - 自动识别 MongoDB 版本并判断是否受影响
  • ✅ 双重验证 - 版本检测 → Zlib 支持检测 → 内存泄露提取
  • ✅ 单目标扫描 - 快速检测单个 MongoDB 实例
  • ✅ 批量扫描 - 从文件读取目标列表进行批量检测
  • ✅ 并发扫描 - 支持多线程并发,提高扫描效率
  • ✅ 实时输出 - 实时显示泄露的内存数据
  • ✅ 结果导出 - 自动保存存在漏洞的目标到文件
  • ✅ 简洁输出 - 统一的输出格式,清晰明了

🚀 安装

方法一:从源码编译

root@kitploit:~
# 克隆仓库
git clone https://github.com/onewinner/CVE-2025-14847.git
cd CVE-2025-14847

# 安装依赖
go mod download

# 编译
go build -o mongodb-scanner main.go

# 运行
./mongodb-scanner -t 127.0.0.1:27017

方法二:直接运行

root@kitploit:~
go run main.go -t 127.0.0.1:27017

方法三:下载预编译版本

前往 Releases 页面下载适合您系统的预编译版本。

📖 使用方法

基本用法

root@kitploit:~
# 扫描单个目标
./mongodb-scanner -t 127.0.0.1:27017

# 从文件批量扫描
./mongodb-scanner -f targets.txt

# 批量扫描(20线程)
./mongodb-scanner -f targets.txt -c 20

# 扫描并保存存在漏洞的目标
./mongodb-scanner -f targets.txt -o vulnerable.txt

# 自定义偏移范围(更快速或更深度扫描)
./mongodb-scanner -t 127.0.0.1:27017 --min-offset 20 --max-offset 1000

命令行参数

目标文件格式

创建一个 targets.txt 文件:

root@kitploit:~
# MongoDB 目标列表
127.0.0.1:27017
192.168.1.100:27017
mongodb.example.com:27017

# 如果不指定端口,默认使用 27017
192.168.1.101

🐳 测试环境搭建

为了安全地测试此工具,建议使用 Docker 搭建本地测试环境。

快速启动受漏洞影响的 MongoDB

root@kitploit:~
# 启动 MongoDB 6.0.14 (受漏洞影响的版本) 并开启 Zlib 压缩
docker run -d \
  --name mongodb-vulnerable \
  -p 27017:27017 \
  mongo:6.0.14 \
  --networkMessageCompressors snappy,zlib

# 查看容器状态
docker ps

# 测试漏洞
./mongodb-scanner -t 127.0.0.1:27017

使用 Docker Compose

创建 docker-compose.yml 文件:

root@kitploit:~
version: '3.8'

services:
  # 受漏洞影响的版本(开启 Zlib)
  mongodb-vulnerable:
    image: mongo:6.0.14
    container_name: mongodb-vulnerable
    ports:
      - "27017:27017"
    command: mongod --networkMessageCompressors snappy,zlib

  # 已修复的版本(用于对比测试)
  mongodb-patched:
    image: mongo:6.0.27
    container_name: mongodb-patched
    ports:
      - "27018:27017"
    command: mongod --networkMessageCompressors snappy,zlib

volumes:
  mongodb-data:
  mongodb-patched-data:

启动测试环境:

root@kitploit:~
# 启动所有容器
docker-compose up -d

# 测试受漏洞影响的版本
./mongodb-scanner -t 127.0.0.1:27017

# 测试已修复的版本
./mongodb-scanner -t 127.0.0.1:27018

# 停止并清理
docker-compose down -v

清理测试环境

root@kitploit:~
# 停止并删除容器
docker stop mongodb-vulnerable && docker rm mongodb-vulnerable

# 清理数据卷
docker volume prune -f

📊 输出示例

输出格式说明

工具使用统一的前缀标记输出信息:

  • [*] - 信息输出(目标、版本、配置等)
  • [+] - 成功/存在漏洞/提取到数据
  • [-] - 失败/安全/不存在漏洞
  • [!] - 警告/重要提示

单目标扫描 - 存在漏洞

root@kitploit:~
╔══════════════════════════════════════════════════════════════╗
║  MongoDB CVE-2025-14847 漏洞检测工具                         ║
╚══════════════════════════════════════════════════════════════╝
⚠️  仅用于授权安全测试 | 未经授权测试可能违法

[*] 目标: 1 | 线程: 10 | 超时: 2s | 偏移: 20-1000
[*] 开始扫描...

[*] 目标: 127.0.0.1:27017
[*] 版本: 6.0.14
[+] 漏洞版本: 是
[+] Zlib压缩: 已开启
[!] 漏洞可利用,开始提取内存...
[+] 偏移=229 长度=250: :00\"},\"s\":\"I\",  \"c\":\"NETWORK\",  \"id\":22944,   \"ctx\":\"conn102932\",

[+] 127.0.0.1:27017 - 漏洞可利用 (v6.0.14) - 3468ms
[+] 成功提取 1 项内存数据:
    [1] :00\"},\"s\":\"I\",  \"c\":\"NETWORK\",  \"id\":22944,   \"ctx\":\"conn102932\",\"msg\":\"Connection ended\",\"attr\":{\"remote\":\"172.17.0.1:44936\"...

======================================================================
[*] 扫描完成 | 总数: 1 | 可利用: 1 | 安全: 0 | 耗时: 3.4s
======================================================================

单目标扫描 - 版本安全

root@kitploit:~
[*] 目标: 127.0.0.1:27018
[*] 版本: 6.0.27
[-] 漏洞版本: 否

[-] 127.0.0.1:27018 - 版本安全 (v6.0.27) - 156ms

======================================================================
[*] 扫描完成 | 总数: 1 | 可利用: 0 | 安全: 1 | 耗时: 0.2s
======================================================================

单目标扫描 - 未开启Zlib

root@kitploit:~
[*] 目标: 127.0.0.1:27017
[*] 版本: 6.0.14
[+] 漏洞版本: 是
[-] Zlib压缩: 未开启

[-] 127.0.0.1:27017 - 未开启Zlib (v6.0.14) - 234ms

======================================================================
[*] 扫描完成 | 总数: 1 | 可利用: 0 | 安全: 1 | 耗时: 0.3s
======================================================================

批量扫描

root@kitploit:~
[*] 目标: 5 | 线程: 10 | 超时: 2s | 偏移: 20-8192
[*] 开始扫描...

[+] 192.168.1.10:27017 - 漏洞可利用 (v6.0.14) - 3521ms
[+] 成功提取 2 项内存数据:
    [1] Connection ended...
    [2] network statistics...

[-] 192.168.1.11:27017 - 版本安全 (v6.0.27) - 145ms
[-] 192.168.1.12:27017 - 未开启Zlib (v6.0.14) - 198ms
[+] 192.168.1.13:27017 - 漏洞可利用 (v7.0.15) - 2987ms
[!] 192.168.1.14:27017 - 漏洞可利用但未提取到数据 (v6.0.20) - 4123ms

======================================================================
[*] 扫描完成 | 总数: 5 | 可利用: 3 | 安全: 2 | 耗时: 5.2s
======================================================================

[+] 可利用的目标已保存到: vulnerable.txt

🔬 检测原理

本工具采用三步检测机制:

1️⃣ 版本检测

  • 连接 MongoDB 实例
  • 获取版本信息 (buildInfo 命令)
  • 判断版本是否在漏洞影响范围内

2️⃣ Zlib 压缩支持检测

  • 发送 Zlib 压缩测试包
  • 检查服务器是否返回压缩响应
  • 确认 Zlib 压缩功能是否开启

3️⃣ 内存泄露提取

  • 发送恶意构造的压缩数据包
    • 声称解压后大小远大于实际大小
    • 触发服务器读取未初始化的堆内存
  • 扫描多个偏移量以提取更多数据
  • 解压服务器响应并提取泄露的字段名
  • 实时显示发现的内存数据

判定逻辑

条件结果
漏洞版本 + Zlib开启 + 提取到数据✅ 漏洞可利用 - 显示泄露数据
漏洞版本 + Zlib开启 + 未提取到数据⚠️ 漏洞可利用但未提取到数据
漏洞版本 + Zlib未开启❌ 未开启Zlib - 无法利用
非漏洞版本✅ 版本安全

🛠️ 修复建议

紧急修复方案

立即升级到以下修复版本之一:

  • MongoDB Server 8.2.3
  • MongoDB Server 8.0.17
  • MongoDB Server 7.0.28
  • MongoDB Server 6.0.27
  • MongoDB Server 5.0.32
  • MongoDB Server 4.4.30

临时缓解措施

如果短期内无法升级,可采取以下临时措施:

1. 禁用 Zlib 压缩

在 mongod.conf 或 mongos.conf 中配置:

root@kitploit:~
net:
  compression:
    compressors: []

或在启动参数中明确排除 zlib:

root@kitploit:~
mongod --networkMessageCompressors snappy,zstd

2. 改用其他压缩算法

推荐使用 snappy 或 zstd 替代 zlib:

root@kitploit:~
net:
  compression:
    compressors: snappy,zstd

3. 网络访问控制

  • 限制 MongoDB 端口仅对可信 IP 开放
  • 使用防火墙规则或 bindIp 配置
  • 启用 TLS/SSL 加密传输

4. 启用访问控制

  • 启用认证机制 (--auth 参数)
  • 使用强密码策略
  • 实施最小权限原则

5. 监控和审计

  • 监控异常连接和内存访问模式
  • 启用审计日志记录
  • 定期检查安全日志

⚠️ 重要提示: 临时缓解措施只能降低风险,不是根治方案。强烈建议尽快升级到已修复版本。

⚠️ 免责声明

重要提示:

  • ✅ 此工具仅用于授权的安全测试和漏洞评估
  • ✅ 使用此工具前,请确保您有权限测试目标系统
  • ❌ 未经授权的扫描可能违反法律法规
  • ❌ 作者不对任何滥用行为负责

使用本工具即表示您同意:

  1. 仅在获得明确授权的系统上使用
  2. 遵守所在地区的法律法规
  3. 对使用本工具造成的任何后果负责

📄 许可证

本项目采用 MIT License 开源协议。

🤝 贡献

欢迎提交 Issue 和 Pull Request!

贡献指南

  1. Fork 本仓库
  2. 创建您的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

📚 参考资料

  • CVE-2025-14847 详情
  • MongoDB 安全公告
  • MongoDB 升级指南
  • MongoDB 压缩配置

👨‍💻 作者

onewinner - @onewinner

项目地址: https://github.com/onewinner/CVE-2025-14847

📝 更新日志

v1.0.0 (2025-12-26)

  • 🎉 初始版本发布
  • ✅ 支持单目标和批量扫描
  • ✅ 支持多线程并发扫描
  • ✅ 自动版本检测和风险评估
  • ✅ 智能内存泄露检测
  • ✅ 详细的修复建议

⭐ 如果这个项目对您有帮助,请给个 Star!

Made with ❤️ by Security Researchers

下载工具
参数说明默认值
-t <target>单个目标 (例如: 127.0.0.1:27017)-
-f <file>目标文件 (每行一个目标)-
-c <num>并发线程数10
-timeout <time>连接超时时间2s
-o <file>输出文件 (保存存在漏洞的目标)-
--min-offset <num>最小文档长度偏移20
--max-offset <num>最大文档长度偏移8192