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

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

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

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

工具目录

分类

查看所有分类
Loading categories
react-server-cve-lab — 安全研究实验室,针对 React Server Components 中的 CVE-2025-55183 和 CVE-2025-55184 | Kitploit
工具/GitHubGitHub/stealthmoud/react-server-cve-lab
漏洞分析漏洞利用Web安全渗透测试学习与教育实验室与实践
GitHubstealthmoud/react-server-cve-lab

react-server-cve-lab

安全研究实验室,针对 React Server Components 中的 CVE-2025-55183 和 CVE-2025-55184

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

React Server Components 安全实验室(CVE-2025-55183 和 CVE-2025-55184)

License: MIT React Version CVE-2025-55183 CVE-2025-55184

一个针对 React Server Components 中 CVE-2025-55183(源代码泄露)和 CVE-2025-55184(拒绝服务)漏洞的全面安全测试环境。

⚠️ 免责声明

仅用于教育和安全研究目的

此仓库包含故意留有漏洞的应用程序和利用工具。只允许在您拥有或获得明确书面授权进行测试的系统上进行测试。 未经授权的测试是非法且不道德的。

📋 目录

  • 关于漏洞
  • 快速开始
  • 仓库结构
  • 易受攻击的应用程序
  • 扫描器用法
  • 详细文档
  • 修复方案
  • 许可证

🔍 关于漏洞

这两个漏洞影响 React Server Components 版本 19.0.0 到 19.2.2,于 2025 年 12 月 11 日披露。

CVE-2025-55183:源代码泄露(中等严重性)

属性值
严重性中等 (CVSS 5.3)
类型信息披露
影响服务器源代码泄露
身份认证无需认证

攻击者可以通过对服务器函数对象调用 .toString() 来强制 Server Action 参数泄露仅服务端可访问的源代码。这会暴露:

  • 业务逻辑和算法
  • 硬编码的 API 密钥或秘密
  • 内部实现细节
  • 数据库查询和模式信息

CVE-2025-55184:拒绝服务(高严重性)

属性值
严重性高 (CVSS 7.5)
类型拒绝服务
影响完全服务中断
身份认证无需认证

精心构造的载荷会创建无限的 Promise 递归,导致 Node.js 服务器无限挂起。后果包括:

  • 服务完全不可用
  • CPU 耗尽
  • 事件循环阻塞
  • 需要手动重启

对比

⚠️ 重要提示:关于本演示中的 CVE-2025-55184(DoS)

为什么 DoS 可能不会导致演示应用崩溃

TL;DR:该应用确实存在漏洞(React 19.0.0),但在本演示环境中,现代防护措施可能会阻止实际崩溃。

现实检查

CVE-2025-55184 是一个真实的、关键的漏洞,影响生产环境中的 React 19.0.0-19.2.2。然而,在本地演示中成功展示 DoS 崩溃可能面临以下挑战:

1. Next.js 内置保护

  • Next.js 15.x 包含错误边界,可捕获并从许多崩溃中恢复
  • 自动错误恢复机制可防止无限递归
  • 生产模式与易受攻击的代码路径具有不同的错误处理方式

2. Docker 隔离

  • 容器化增加了进程隔离
  • 资源限制可防止系统完全挂起
  • Docker 的 init 系统可检测并重启挂起的进程

3. 开发环境 vs 生产环境

  • 确切的漏洞代码路径需要特定的生产配置
  • 开发/演示环境具有额外的安全机制
  • 容器中的竞态条件和时序不同

如何验证漏洞确实存在

即使漏洞无法导致演示崩溃,您仍可通过以下方法验证漏洞:

方法 1:版本检查(最可靠)

root@kitploit:~
cd vulnerable-app
npm list react react-dom

# 输出显示:
[email protected]        ← 存在漏洞的版本
[email protected]    ← 存在漏洞的版本

如果您看到 19.0.0 到 19.2.2,则说明应用程序确实存在漏洞。

方法 2:扫描器检测

root@kitploit:~
cd scanner
python scan.py http://localhost:3000

扫描器会检查:

  • ✅ React 版本是否在受影响范围内
  • ✅ 是否启用了 Server Actions
  • ✅ 服务器响应头是否正确
  • ✅ 是否存在可利用的端点模式

🚀 快速开始

前提条件

  • Docker 和 Docker Compose
  • Python 3.7+
  • Git

1. 克隆仓库

root@kitploit:~
git clone https://github.com/StealthMoud/react-server-cve-lab.git
cd react-server-cve-lab

2. 启动易受攻击的应用程序

root@kitploit:~
# 启动应用(对两个 CVE 均存在漏洞)
docker-compose up --build -d

# 应用可访问:http://localhost:3000

3. 运行扫描器

root@kitploit:~
cd scanner

# 安装依赖
pip install -r requirements.txt

# 扫描两个漏洞
python scan.py http://localhost:3000

# 仅扫描 CVE-2025-55183
python scan.py --cve 55183 http://localhost:3000

# 仅扫描 CVE-2025-55184
python scan.py --cve 55184 http://localhost:3000

# 扫描多个目标
python scan.py --file targets.txt

📁 仓库结构

root@kitploit:~
react-server-cve-lab/
├── README.md                          # 本文件
├── DOCUMENTATION.md                   # 完整技术文档
├── LICENSE
├── .gitignore
├── docker-compose.yml
│
├── vulnerable-app/                    # 对两个 CVE 均存在漏洞
│   ├── Dockerfile
│   ├── package.json
│   ├── next.config.js
│   └── app/
│       ├── layout.js
│       ├── page.js
│       └── actions.js                 # 存在漏洞的 server actions
│
├── scanner/
│   ├── requirements.txt
│   ├── scan.py                        # 两个 CVE 的扫描器
│   └── README.md
│
└── exploits/
    ├── exploit-55183.py               # CVE-2025-55183 的 PoC
    ├── exploit-55184.py               # CVE-2025-55184 的 PoC
    └── README.md

🎯 易受攻击的应用程序

该应用程序是一个运行 React 19.0.0 并启用 Server Actions 的 Next.js 应用,对两个 CVE 均存在漏洞。

特性

  • Server Actions:多个端点展示了这两个漏洞
  • 逼真的代码:模拟了包含秘密的真实世界模式
  • 便于测试:简单的 UI 用于手动测试
  • 基于 Docker:隔离的、可重现的环境

启动应用

root@kitploit:~
# 使用 Docker Compose(推荐)
docker-compose up --build -d

# 检查是否运行
curl http://localhost:3000

# 查看日志
docker-compose logs -f

# 停止应用
docker-compose down

手动安装(不使用 Docker)

root@kitploit:~
cd vulnerable-app
npm install
npm run build
npm start

🔎 扫描器用法

统一扫描器可检测 CVE-2025-55183 和 CVE-2025-55184。

基本用法

root@kitploit:~
cd scanner

# 扫描两个 CVE
python scan.py http://localhost:3000

# 仅扫描特定 CVE
python scan.py --cve 55183 http://localhost:3000
python scan.py --cve 55184 http://localhost:3000

高级选项

root@kitploit:~
# 详细输出
python scan.py --verbose http://localhost:3000

# 自定义超时
python scan.py --timeout 10 http://example.com

# 从文件扫描多个 URL
python scan.py --file targets.txt

# 将结果保存为 JSON
python scan.py --output results.json http://localhost:3000

# 禁用 SSL 验证
python scan.py --no-verify https://self-signed.example.com

# 扫描所有 CVE 并输出详细信息并保存结果
python scan.py --verbose --output scan-results.json http://localhost:3000

示例输出

root@kitploit:~
╔═══════════════════════════════════════════════════════════╗
║     React Server Components 漏洞扫描器                    ║
║         CVE-2025-55183 和 CVE-2025-55184                  ║
╚═══════════════════════════════════════════════════════════╝

[*] 正在测试 http://localhost:3000

[CVE-2025-55183] 源代码泄露
[!] 存在漏洞:源代码已泄露
    暴露的函数数量:3
    代码长度:1247 个字符
    包含秘密:✓(找到 API 密钥)

[CVE-2025-55184] 拒绝服务
[!] 存在漏洞:DoS 攻击成功
    状态码:404
    内容类型:text/plain
    找到标记:✓

============================================================
摘要
============================================================
总共测试:1
CVE-2025-55183 存在漏洞:1
CVE-2025-55184 存在漏洞:1
两个 CVE 均存在漏洞:1
不存在漏洞:0

📚 详细文档

有关两个漏洞的全面技术分析:

DOCUMENTATION.md - 完整的技术文档,涵盖:

  • 两个 CVE 的详细漏洞分析
  • 根本原因解释
  • 利用技术及示例
  • 影响评估
  • 检测策略
  • 分步修复方案
  • 预防最佳实践
  • 代码示例和 PoC

🛡️ 修复方案

需要立即采取的行动

两个漏洞均在相同的补丁版本中修复:

  1. 更新 React 到已修补的版本:

    root@kitploit:~
    npm install [email protected] [email protected]
    # 或
    npm install react@latest react-dom@latest
    
  2. 更新 Next.js(如果适用):

    root@kitploit:~
    npm install next@latest
    
  3. 验证修复情况:

    root@kitploit:~
    npm list react react-dom next
    python scanner/scan.py http://localhost:3000
    

已修补的版本

修补后的验证

root@kitploit:~
# 运行扫描器确认修复
cd scanner
python scan.py http://your-patched-app.com

# 预期输出:
# [+] CVE-2025-55183: 不存在漏洞
# [+] CVE-2025-55184: 不存在漏洞

🔒 安全最佳实践

预防 CVE-2025-55183(源代码泄露)

  1. 输入验证:始终验证 Server Action 输入
  2. 切勿将秘密存储在代码中:使用环境变量
  3. 代码混淆:考虑在构建时对敏感逻辑进行混淆处理
  4. 定期审计:检查 Server Actions 中是否包含敏感数据

预防 CVE-2025-55184(拒绝服务)

  1. 速率限制:实施请求速率限制
  2. 超时设置:为所有异步操作设置适当的超时
  3. 健康检查:实施健壮的健康监控
  4. 断路器:防止级联故障

通用建议

  • 保持 React 和 Next.js 更新
  • 订阅安全公告
  • 实施 Web 应用防火墙(WAF)
  • 在 CI/CD 中进行定期安全扫描
  • 为信息披露和拒绝服务制定应急响应计划

🤝 贡献

欢迎贡献力量!可改进的领域包括:

  • 添加更多测试用例
  • 改进检测方法
  • 提供更好的利用示例
  • 增强文档

欢迎提交 Pull Request。

📄 许可证

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

🔗 参考

官方公告

  • React 安全博客
  • Vercel 安全公告

CVE 详情

  • CVE-2025-55183 (NVD)
  • CVE-2025-55184 (NVD)

其他资源

  • CWE-502:不可信数据的反序列化
  • CWE-200:信息泄露
  • React Server Components 文档

⭐ 支持

如果您觉得本仓库对您的安全研究有帮助,请考虑给它一个星标!

📧 联系方式

  • 问题反馈:GitHub Issues
  • 安全事项:请负责任地报告漏洞
下载工具
方面CVE-2025-55183CVE-2025-55184
严重性中等高
类型信息披露拒绝服务
影响源代码泄露服务器崩溃
检测方式响应中包含代码服务器超时/挂起
恢复即时恢复需要重启
包
存在漏洞的版本
已修补的版本
React19.0.0 - 19.2.219.0.3+, 19.1.4+, 19.2.3+
Next.js 15.1.x< 15.1.415.1.4+
Next.js 15.0.x< 15.0.415.0.4+
Next.js 14.x< 14.2.2414.2.24+