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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-55182 — CVE-2025-55182 的概念验证漏洞利用程序,这是 React Server Components 中的一个严重未认证远程代码执行漏洞。包含自动化 Python 漏洞利用程序、技术分析、检测规则以及用于授权安全测试的实验室环境搭建。 | Kitploit
工具/GitHubGitHub/tinashelorenzi/cve-2025-55182
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试入侵检测学习与教育红队Payload 开发实验室与实践
GitHubtinashelorenzi/cve-2025-55182

CVE-2025-55182

CVE-2025-55182 的概念验证漏洞利用程序,这是 React Server Components 中的一个严重未认证远程代码执行漏洞。包含自动化 Python 漏洞利用程序、技术分析、检测规则以及用于授权安全测试的实验室环境搭建。

49个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
分享

React2Shell (CVE-2025-55182) - 概念验证 (PoC)

针对 CVE-2025-55182 的全面概念验证(PoC)利用工具与教育资源。CVE-2025-55182 是一个影响 React Server Components 的严重远程代码执行漏洞,CVSS 评分为 10.0。

Python Version License CVSS

法律免责声明

仅供教育和授权测试用途

本工具仅用于教育目的和授权安全测试。未经授权访问计算机系统在包括美国《计算机欺诈和滥用法》(CFAA)在内的多项法律以及世界各地的类似立法中均属违法行为。

您必须:

  • 仅在您拥有或已获得明确书面授权测试的系统上使用本工具
  • 遵守所有适用的地方、州和联邦法律
  • 负责任且合乎道德地使用本工具

作者和贡献者:

  • 不对因使用本工具造成的任何滥用或损害负责
  • 不认可或鼓励未经授权访问计算机系统
  • 严格出于教育和防御性安全目的提供本工具

使用本工具即表示您确认理解并同意上述条款。

📋 目录

  • 概述
  • 漏洞详情
  • 受影响版本
  • 技术分析
  • 安装
  • 使用方法
  • 检测
  • 修复方案
  • 实验环境搭建
  • 参考资料
  • 参与贡献
  • 作者
  • 🎯 概述

    React2Shell 是于 2025 年 12 月发现的一个关键漏洞,影响 React Server Components (RSC) 及其实现框架,尤其是 Next.js。该漏洞允许攻击者通过单个精心构造的 HTTP 请求实现未经认证的远程代码执行。

    本仓库包含:

    • ✅ 自动化 Python 利用脚本
    • ✅ 详细的技术分析
    • ✅ 检测规则(Snort、OSQuery)
    • ✅ 实验环境搭建指南
    • ✅ 全面的文档资料

    🔍 漏洞详情

    字段详情
    CVE IDCVE-2025-55182
    CVSS 评分10.0(严重)
    攻击向量网络
    攻击复杂度低
    所需权限无
    用户交互无
    影响系统完全沦陷(RCE)
    披露日期2025 年 12 月

    为何此漏洞至关重要?

    1. 无需认证 —— 任何未经认证的攻击者均可利用
    2. 默认配置即存在漏洞 —— 通过 create-next-app 创建的标准 Next.js 应用即可被利用
    3. 可靠性高 —— 利用成功率接近 100%
    4. 攻击面广 —— 超过 571,000 台运行 React 组件的公网服务器(Shodan 数据)
    5. 影响严重 —— 以 Node.js 进程权限实现完全远程代码执行

    📦 受影响版本

    React Server Components

    受影响版本:

    • react-server-dom-webpack: 19.0.0, 19.1.0, 19.1.1, 19.2.0
    • react-server-dom-parcel: 19.0.0, 19.1.0, 19.1.1, 19.2.0
    • react-server-dom-turbopack: 19.0.0, 19.1.0, 19.1.1, 19.2.0

    已修复版本:

    • React 19.0.1
    • React 19.1.2
    • React 19.2.1

    Next.js

    受影响版本:

    • 所有 ≥14.3.0-canary.77 的版本
    • 所有 15.x 版本(修复前)
    • 所有 16.x 版本(修复前)

    已修复版本:

    • 请查看 Next.js 的发布版本,以获取包含 React 补丁的更新版本

    其他受影响的框架

    • React Router(使用 RSC 模式时)
    • Waku
    • Redwood SDK
    • 各种支持 RSC 的框架

    🔬 技术分析

    根本原因

    该漏洞存在于 React Server Components 反序列化逻辑中的 requireModule 函数内:

    root@kitploit:~
    function requireModule(metadata) {  
      var moduleExports = __webpack_require__(metadata[0]);  
      return moduleExports[metadata[2]];  // VULNERABLE LINE - Prototype chain traversal
    }
    

    该缺陷允许攻击者通过 React Flight 协议遍历 JavaScript 原型链,借助 constructor.constructor 等属性访问 Function 构造函数,从而实现任意代码执行。

    利用链

    1. 伪造 Chunk —— 攻击者发送包含精心构造的 chunk 对象的多部分表单数据
    2. 原型污染 —— 利用 __proto__ 创建自引用结构
    3. 滥用 Blob 处理器 —— 触发 React 内部的 Blob 反序列化处理器
    4. 访问 Function 构造函数 —— 通过 constructor.constructor 链式访问 Function()
    5. 代码执行 —— 通过 child_process.execSync() 注入任意 JavaScript

    攻击流程图

    root@kitploit:~
    ┌─────────────────────────────────────────────────────────────┐
    │  Attacker sends multipart/form-data with Next-Action header │
    └──────────────────────┬──────────────────────────────────────┘
                           │
                           ▼
    ┌─────────────────────────────────────────────────────────────┐
    │  Server deserializes payload via React Flight protocol      │
    └──────────────────────┬──────────────────────────────────────┘
                           │
                           ▼
    ┌─────────────────────────────────────────────────────────────┐
    │  Fake chunk object with __proto__ pollution processed       │
    └──────────────────────┬──────────────────────────────────────┘
                           │
                           ▼
    ┌─────────────────────────────────────────────────────────────┐
    │  Blob handler invokes _formData.get(_prefix + id)           │
    └──────────────────────┬──────────────────────────────────────┘
                           │
                           ▼
    ┌─────────────────────────────────────────────────────────────┐
    │  Resolves to Function("malicious_code")                     │
    └──────────────────────┬──────────────────────────────────────┘
                           │
                           ▼
    ┌─────────────────────────────────────────────────────────────┐
    │  Arbitrary code executed with Node.js process privileges    │
    └─────────────────────────────────────────────────────────────┘
    

    🚀 安装

    环境要求

    • Python 3.7 或更高版本
    • requests 库

    安装步骤

    root@kitploit:~
    # Clone the repository
    git clone https://github.com/yourusername/react2shell-poc.git
    cd react2shell-poc
    
    # Install dependencies
    pip install -r requirements.txt
    
    # Make script executable (Linux/macOS)
    chmod +x react2shell.py
    

    Requirements.txt

    root@kitploit:~
    requests>=2.31.0
    urllib3>=2.0.0
    

    💻 使用方法

    基本用法

    root@kitploit:~
    python3 react2shell.py
    

    交互式会话

    root@kitploit:~
    ╔═══════════════════════════════════════════════════════════╗
    ║           React2Shell (CVE-2025-55182) PoC                ║
    ║                 CVSS 10.0 - Critical RCE                  ║
    ║                                                           ║
    ║  Affected: React 19.0.0, 19.1.0, 19.1.1, 19.2.0          ║
    ║           Next.js ≥14.3.0-canary.77, 15.x, 16.x          ║
    ║                                                           ║
    ║  Cerberus Secure - Lab Use Only                          ║
    ╚═══════════════════════════════════════════════════════════╝
    
    [?] Enter target information:
        Host (e.g., localhost or 192.168.1.100): localhost
        Port (e.g., 3000): 3000
    
    [React2Shell]> id
    [*] Target: http://localhost:3000/
    [*] Command: id
    [*] Building exploit payload...
    [*] Sending exploit request...
    [+] Response Status Code: 200
    [*] Parsing response...
    
    ╔═══════════════════════════════════════════════════════════╗
    ║                    COMMAND OUTPUT                         ║
    ╚═══════════════════════════════════════════════════════════╝
    uid=1000(node) gid=1000(node) groups=1000(node)
    
    [React2Shell]> whoami
    [React2Shell]> pwd
    [React2Shell]> ls -la
    [React2Shell]> exit
    

    示例命令

    root@kitploit:~
    # System reconnaissance
    [React2Shell]> id
    [React2Shell]> whoami
    [React2Shell]> uname -a
    [React2Shell]> cat /etc/os-release
    
    # File system exploration
    [React2Shell]> pwd
    [React2Shell]> ls -la
    [React2Shell]> cat package.json
    
    # Environment variables (often contain secrets)
    [React2Shell]> printenv
    [React2Shell]> echo $PATH
    
    # Network information
    [React2Shell]> ifconfig
    [React2Shell]> netstat -tulpn
    

    可用命令

    命令说明
    <any shell command>在目标上执行命令
    help显示帮助信息
    exit / quit / q退出工具

    🛡️ 检测

    网络层检测(Snort v3)

    部署以下 Snort 规则以检测利用尝试:

    root@kitploit:~
    alert http any any -> $LAN_NETWORK any (
        msg:"Potential Next.js React2Shell / CVE-2025-55182 attempt";
        flow:to_server,established;
        content:"Next-Action"; http_header; nocase;
        content:"multipart/form-data"; http_header; nocase;
        pcre:"/Content-Disposition:\s*form-data;\s*name=\"0\"/s";
        pcre:"/\"status\"\s*:\s*\"resolved_model\"/s";
        pcre:"/\"then\"\s*:\s*\"\$1:__proto__:then\"/s";
        classtype:web-application-attack;
        sid:6655001;
        rev:1;
    )
    

    检测逻辑:

    • 监控 Next-Action 标头(RSC 特有)
    • 检测 multipart/form-data 载荷
    • 识别利用特有的模式:name="0"、status: "resolved_model"、then: "$1:__proto__:then"

    端点检测(OSQuery)

    使用以下 OSQuery 规则扫描存在漏洞的软件包版本:

    root@kitploit:~
    {
      "queries": {
        "detect_react2shell_vulnerable_packages": {
          "query": "SELECT name, version, path FROM npm_packages WHERE (name='react-server-dom-parcel' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0')) OR (name='react-server-dom-turbopack' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0')) OR (name='react-server-dom-webpack' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0'));",
          "interval": 3600,
          "description": "Detects vulnerable versions of React Server Components packages affected by CVE-2025-55182",
          "platform": "linux,windows,macos",
          "version": "1.0"
        }
      }
    }
    

    优点:

    • 扫描端点以发现存在漏洞的软件包
    • 适用于开发、预生产和生产环境
    • 可集成到 CI/CD 流水线中
    • 在部署前提供早期预警

    日志分析指标

    在应用程序日志中查找以下模式:

    root@kitploit:~
    - HTTP POST requests with "Next-Action" header
    - Unusual multipart/form-data requests to application root
    - Error messages containing "NEXT_REDIRECT" with unexpected digest values
    - Spike in 500 errors with React-related stack traces
    - Child process spawning from Node.js (execSync, spawn, exec)
    

    🔧 修复方案

    立即行动

    1. 更新存在漏洞的软件包

    root@kitploit:~
    # Check current versions
    npm list react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack
    
    # Update React to patched version
    npm install [email protected] [email protected]
    
    # Update Next.js to latest patched version
    npm install next@latest
    
    # Verify updates
    npm list react react-dom next
    

    2. 验证应用程序重建

    root@kitploit:~
    # Clear cache and rebuild
    rm -rf .next node_modules package-lock.json
    npm install
    npm run build
    

    3. 部署更新后的应用程序

    • 开发环境: 在预生产环境中充分测试
    • 预生产环境: 在部署到生产环境前验证所有功能
    • 生产环境: 制定适当的回滚计划后进行部署

    长期安全措施

    1. 实施 Web 应用防火墙(WAF)规则

    拦截可疑模式:

    root@kitploit:~
    - Requests with "Next-Action" header from untrusted sources
    - Multipart form data with suspicious JSON structures
    - Requests matching exploit signature patterns
    

    2. 网络分段

    • 将 React 应用程序隔离到独立的网络区域
    • 实施严格的出站过滤
    • 监控异常出站连接并发出警报

    3. 运行时应用自我保护(RASP)

    • 部署 RASP 解决方案以检测和阻止利用尝试
    • 监控可疑的子进程派生行为
    • 对意外的代码执行模式发出警报

    4. CI/CD 中的安全扫描

    root@kitploit:~
    # Example GitHub Actions workflow
    name: Security Scan
    on: [push, pull_request]
    
    jobs:
      dependency-check:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v3
          - name: Check for vulnerable React packages
            run: |
              npm audit --audit-level=critical
              npm list react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack
    

    5. 监控与告警

    为以下情况设置告警:

    • 部署存在漏洞的软件包版本
    • 日志中出现利用尝试模式
    • 意外的子进程创建
    • 与可疑目标的网络连接

    🧪 实验环境搭建

    方案 1:存在漏洞的 Next.js 应用程序

    root@kitploit:~
    # Create a new Next.js app with vulnerable version
    npx [email protected] vulnerable-app
    cd vulnerable-app
    
    # Install vulnerable React version
    npm install [email protected] [email protected]
    
    # Start the development server
    npm run dev
    

    方案 2:Docker 环境

    创建 Dockerfile:

    root@kitploit:~
    FROM node:18-alpine
    
    WORKDIR /app
    
    # Create a basic Next.js app
    RUN npx [email protected] vulnerable-app --typescript --tailwind --app --no-src-dir
    
    WORKDIR /app/vulnerable-app
    
    # Install vulnerable React versions
    RUN npm install [email protected] [email protected]
    
    EXPOSE 3000
    
    CMD ["npm", "run", "dev"]
    

    构建并运行:

    root@kitploit:~
    docker build -t react2shell-lab .
    docker run -p 3000:3000 react2shell-lab
    

    方案 3:Docker Compose

    创建 docker-compose.yml:

    root@kitploit:~
    version: '3.8'
    services:
      vulnerable-app:
        build: .
        ports:
          - "3000:3000"
        environment:
          - NODE_ENV=development
        volumes:
          - ./app:/app/vulnerable-app
    

    运行:

    root@kitploit:~
    docker-compose up -d
    

    验证漏洞

    使用 curl 进行测试:

    root@kitploit:~
    curl -X POST http://localhost:3000/ \
      -H "Next-Action: x" \
      -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
      --data-binary @exploit_payload.txt
    

    📚 参考资料

    官方安全公告

    • React 安全公告 - CVE-2025-55182
    • Next.js 安全公告
    • NVD - CVE-2025-55182

    研究与分析

    • maple3142 的原始 PoC
    • Wiz 安全研究 - React2Shell 分析
    • Assetnote 安全研究

    检测与缓解

    • Snort 文档
    • OSQuery 文档
    • React Server Components 文档

    相关漏洞

    • Log4Shell (CVE-2021-44228) - 通过反序列化实现的类似 RCE 漏洞
    • Spring4Shell (CVE-2022-22965) - 框架级 RCE 漏洞

    🤝 参与贡献

    欢迎参与贡献!请遵循以下指南:

    1. Fork 本仓库
    2. 创建功能分支(git checkout -b feature/improvement)
    3. 提交您的更改(git commit -am 'Add new detection method')
    4. 推送到分支(git push origin feature/improvement)
    5. 创建 Pull Request

    可贡献的领域

    • 其他检测规则(Suricata、Zeek 等)
    • 与安全框架的集成(MISP、TheHive 等)
    • 增强的载荷变体
    • 改进的输出解析
    • 补充文档和翻译

    📝 许可证

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

    👤 作者

    Tinashe

    • 职位:网络安全解决方案架构师
    • 所属机构:Cerberus Secure / iConnect SA
    • 所在地:南非约翰内斯堡
    • LinkedIn:https://www.linkedin.com/in/tinashe-matanda/
    • GitHub:@tinashelorenzi

    关于 Cerberus Secure

    Cerberus Secure 是 iConnect SA 的网络安全部门,专注于:

    • DDoS 缓解与网络安全
    • GRC 合规(POPIA、ECT、PCI-DSS、HPCSA)
    • 安全架构与解决方案设计
    • 事件响应与威胁情报
    • 定制 SIEM 开发(Olympus 平台)

    🙏 致谢

    • maple3142 - 原始概念验证研究
    • Wiz 安全研究团队 - 全面的漏洞分析
    • Assetnote - 增强的利用技术
    • React 团队 - 快速响应与补丁开发
    • Next.js 团队 - 框架层面的缓解措施实施

    ⚖️ 负责任披露

    安全研究人员已通过负责任的披露流程将此漏洞报告给 React 团队。本 PoC 在以下条件满足后发布:

    • 官方补丁已发布
    • 各组织有充足时间进行更新
    • React 安全团队已公开披露

    时间线:

    • 2025 年 12 月:发现漏洞
    • 2025 年 12 月:协调并向 React 团队披露
    • 2025 年 12 月:发布补丁(19.0.1、19.1.2、19.2.1)
    • 2025 年 12 月:公开披露并发布 PoC

    请记住:请负责任地使用本工具,并且仅在您获得授权测试的系统上使用。

    如有关于本仓库的问题、疑虑或安全问题,请提交 issue 或直接联系维护者。

    下载工具