MuharremK0/Info-Sys-Security-CVE-2025-55182
GitHub: MuharremK0/Info-Sys-Security-CVE-2025-55182
这是一个基于 Docker 的本地安全实验室,用于模拟和分析 CVE-2025-55182 漏洞的利用与修复过程。
Stars: 0 | Forks: 0
# CVE-2025-55182 安全实验室 (“React2Shell”)
此仓库包含一个用于在受控的 React Server Components 环境中分析 `CVE-2025-55182` 的本地学术实验室。该实验室模拟了该漏洞、其利用方式以及应用的补丁。
## 📁 仓库布局
### 核心应用程序
- **`app/vulnerable/`**: 漏洞版 React 应用程序配置。
- `src/framework/entry.rsc.tsx`: 包含**不安全的反序列化**点,其中 `__flight_action` 负载通过 `execSync()` 执行。
- 模拟未打补丁的 `react-server-dom-webpack@19.0.0` 的行为。
- **`app/patched/`**: 补丁版 React 应用程序配置。
- `src/framework/entry.rsc.tsx`: 包含**缓解逻辑**,在反序列化前以 403 响应阻止 `__flight_action` 负载。
### 基础设施与执行
- **`infra/`**: 用于隔离执行的 Docker 配置。
- `docker-compose.yml`: 启动漏洞版(端口 3100)和补丁版(端口 3200)配置。
- **`scripts/`**: 自动化脚本和利用脚本。
- `exploit-shell.ps1`: 一个**交互式利用 shell**,利用该漏洞提供模拟的远程终端 (`root@container$`)。
- `run-scenarios.ps1`: 用于执行 `tests/run-scenarios.mjs` 中自动化评估测试的包装脚本。
- `start-lab.ps1`: 用于快速启动 Docker Compose 环境的辅助脚本。
- `stop-lab.ps1`: 用于关闭和清理 Docker Compose 环境的辅助脚本。
- `demo-lab.ps1`: 备用演示脚本,在本地(不使用 Docker)运行两个应用程序并发送一系列测试请求。
### 文档与评估
- **`report/`**: 包含最终分析报告。
- `findings.md`: 全面的安全报告,涵盖攻击链、CVSS 分析、评估指标和缓解建议。
- `CSE472_ProjectProposal_Revised.md`: 修订后的项目提案和方法论文档。
- **`tests/`**: 自动化评估。
- `run-scenarios.mjs`: Node.js 脚本,针对两个配置运行正常、可疑和利用场景,计算成功率和检测率。
- **`logs/`**: 遥测输出。
- `vulnerable-requests.log` 和 `patched-requests.log`: 存储详细的请求跟踪,包括用于分析的 `suspiciousReasons`。
## 🚀 快速入门指南(适用于下载的压缩包)
如果您已从 GitHub 下载了此项目(`.zip` 文件),请按照以下步骤操作,在本地机器上运行实验室并与漏洞模拟进行交互。
### 前置条件
1. 已安装并运行 **Docker Desktop**。
2. 已安装 **Node.js**(v18 或更高版本)以运行测试脚本。
3. **PowerShell**(Windows 默认可用)。
### 第一步:解压并打开
将 `.zip` 文件解压到您选择的文件夹。打开 PowerShell 窗口并导航到解压后的项目文件夹:
```
cd path\to\extracted\folder
```
### 第二步:启动实验室环境
我们使用 Docker 安全地隔离漏洞应用程序。使用提供的辅助脚本启动容器:
```
.\scripts\start-lab.ps1
```
*(或者,您可以手动运行 `cd infra; docker-compose up --build -d`)*
启动后:
- 漏洞应用运行在 `http://localhost:3100`
- 补丁应用运行在 `http://localhost:3200`
### 第三步:访问交互式利用 Shell
环境运行后,您可以通过启动我们模拟的利用 shell 来测试远程代码执行(RCE)漏洞。打开一个新的 PowerShell 选项卡/窗口并运行:
```
.\scripts\exploit-shell.ps1
```
此脚本作为攻击者向 `.rsc` 端点发送特制的负载。尝试运行以下命令:
- `whoami`
- `ls /workspace`
- `env`
- `cat /etc/passwd`
**要测试补丁版本:**
```
.\scripts\exploit-shell.ps1 -Target "http://localhost:3200"
```
*您会注意到补丁版本阻止了请求并返回 `[BLOCKED]` 消息。*
### 第四步:运行自动化场景
要生成评估指标(成功率、检测率),请运行 Node.js 测试脚本:
```
node .\tests\run-scenarios.mjs
```
*(或使用包装脚本:`.\scripts\run-scenarios.ps1`)*
这将在控制台输出摘要,并在 `tests/results/scenario-report.json` 中保存详细的 JSON 报告。
### 第五步:停止实验室
当您完成实验后,可以安全地关闭容器以释放资源:
```
.\scripts\stop-lab.ps1
```
标签:AI合规, CMS安全, CVE-2025-55182, Docker, GNU通用公共许可证, IPv6, JavaScript, MITM代理, Node.js, PowerShell, React, Syscalls, TypeScript, Webpack, 利用开发, 反取证, 反序列化漏洞, 命令注入, 安全实验室, 安全插件, 安全补丁, 安全评估, 安全防御评估, 服务器端渲染, 漏洞分析, 漏洞模拟, 编程工具, 网络安全, 脚本语言, 请求拦截, 路径探测, 远程代码执行, 隐私保护