React2Shell 易受攻击银行应用实验室
为 CVE-2025-55182 (React) 和 CVE-2025-66478 (Next.js) 特意构建的易受攻击银行应用,用于学习、检测并安全地实践 React2Shell。运行未修复的 React 19.0.0 和 Next.js 15.0.3。
概述
- 虚构的 SecureBank,基于 Next.js 应用路由器与 Server Actions 构建。
- 默认配置,无自定义危险代码,故意保持未修复状态。
- 旨在研究 RSC “Flight” 协议中的不安全反序列化,并练习检测/缓解措施。
快速启动(推荐 Docker)
# 1. 启动实验室
docker-compose up -d
# 2. 打开应用
http://localhost:3000
# 3. 完成后停止
docker-compose down
演示凭据:
admin / admin123
johndoe / password123
janedoe / password456
手动设置与开发模式
类似生产环境的手动运行:
npm install --legacy-peer-deps
npm run build
npm start
# 访问 http://localhost:3000
带热重载的开发模式:
npm install --legacy-peer-deps
npm run dev
注意:
- 始终使用 --legacy-peer-deps,因为故意固定了版本。
- 如果端口 3000 被占用,请修改 docker-compose.yml 中的映射(例如 3001:3000),或在启动前设置 PORT 环境变量。
快速运行状态
- 容器:react2shell-vulnerable-bank
- 端口:3000(期望 HTTP 200 OK)
- 易受攻击版本:React 19.0.0,Next.js 15.0.3
实用命令:
docker-compose ps
docker-compose logs -f vulnerable-bank
docker-compose restart
docker-compose build --no-cache && docker-compose up -d
漏洞摘要(React2Shell)
- CVE-2025-55182(React)与 CVE-2025-66478(Next.js)通过 RSC 中的不安全反序列化实现未认证远程代码执行(RCE)。
相关受影响版本:
- React:19.0.0、19.1.0、19.1.1、19.2.0
- Next.js:>=14.3.0-canary.77,所有 15.x、16.x 未修复
利用现实
- 默认应用尚无公开的 RCE 利用;react2shell.com 称“敬请期待”。
- 手动暴露 child_process、vm 或 fs 的概念验证(PoC)不具备代表性。
参考