## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-L0LSEC-CVE-2025-55182-LAB
# CVE-2025-55182 RSC lab(有意存在漏洞)
用于授权安全研究的本地 **Docker** 实验环境:**React Server Components** / **Next.js App Router** ,其技术栈处于 **CVE-2025-55182** (React2Shell)受影响版本范围内。
**仅限在您自己的机器上使用。请勿将此容器暴露在互联网上。**
## 参考资料
* React——React Server Components 中的严重安全漏洞
* NVD——CVE-2025-55182
* Next.js 安全公告(适用于您发布版本的升级路径)
## 此实验环境运行的内容
组件| 版本| 说明
---|---|---
**Next.js**| `15.1.0`| 补丁前版本;npm 会警告已知问题
**React / react-dom**| `19.2.0`| 属于此 CVE 影响的 19.x 版本线
**RSC 管道**| 随 Next 捆绑| 通过 Next 编译后的 `react-server-dom-*` 实现反序列化
该应用是一个极简的 **App Router** 页面,包含一个 **Server Action** ,因此带有 `Next-Action` 头的 `POST /` 表现得像真实目标。
## 前提条件
* Docker 和 **Docker Compose v2**
* Docker 引擎正在运行(例如 Docker Desktop)
## 快速启动
root@kitploit:~
git clone https://github.com/l0lsec/cve-2025-55182-lab.git
cd cve-2025-55182-lab
# 构建并在后台运行
docker compose up --build -d
打开 **http://localhost:3000** —— 您应该看到“RSC lab(有意存在漏洞)”和一个小的表单。
### 验证是否启动
root@kitploit:~
curl -sS -o /dev/null -w "%{http_code}\n" http://127.0.0.1:3000/
# 预期:200
### 日志
root@kitploit:~
docker compose logs -f
### 停止
root@kitploit:~
docker compose down
## 使用 Burp Suite 进行测试
1. 将 **Target** 设置为 `http://localhost:3000`(或通过 Burp 建立隧道)。
2. 发送 **`POST /`** ,携带 **`Content-Type: multipart/form-data`** 和您的 Flight 协议漏洞利用主体(多部分字段 `0`、`1`、`2`,如公开文章/您的模板所示)。
3. **`Next-Action` 头**
* 尝试拦截一个正常的表单提交,并从该请求中复制真实的 `Next-Action` 值,**或者**
* 检查页面 HTML:操作 ID 出现在隐藏字段/RSC 载荷中(**重建镜像时可能会改变** )。
示例头格式:
root@kitploit:~
Next-Action: <action-id-from-intercepted-request>
如果通用占位符不起作用,请始终在代理历史中执行一次合法提交后优先使用**实时** ID。
### 样本原始请求
可直接粘贴的 **`POST /`** 多部分模板位于 **`burp-payloads/`** (例如 `id`、`whoami`、基于时间的 `sleep`、OOB 占位符)。请参阅 `burp-payloads/README.md` 了解文件索引。发送前,请将 OOB 模板中的 **`YOUR-COLLABORATOR-HOST`** 替换为实际值。
## 项目布局
root@kitploit:~
.
├── Dockerfile # 多阶段构建,Next standalone,端口 3000
├── docker-compose.yml # 将主机 3000 端口映射到容器 3000 端口
├── burp-payloads/ # 用于 Burp Repeater 的原始 *.http 文件 + 索引 README
├── app/
│ ├── layout.tsx
│ └── page.tsx # Server Action + 实验 UI
├── public/
├── package.json
├── package-lock.json
└── next.config.ts # output: "standalone"
## 开发(不使用 Docker)
root@kitploit:~
npm install
npm run dev
# http://localhost:3000
对于 CVE 复现,建议使用 **Docker** 镜像,以确保技术栈与固定存在漏洞的依赖项一致。
## 完成测试后
* **销毁** 容器和镜像(若不再需要)。
* 根据供应商指南,将任何真实应用升级到已修补的 Next.js/React 版本——此仓库**并非** 安全基线。
## 许可证
仅用于教学/实验。您有责任遵守您所在地区的法律和政策。无任何保证。