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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/machine-farmer/punchingbag-for-react2shell
漏洞分析漏洞利用Web应用程序漏洞利用CTF渗透测试学习与教育红队远程访问工具实验室与实践

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
GitHubmachine-farmer/punchingbag-for-react2shell

PunchingBag-for-React2Shell

专为CVE-2025-55182安全研究与CTF挑战设计的故意存在漏洞的Next.js应用

查看仓库
1138个月前尚未审核
分享

🥊 PunchingBag - CVE-2025-55182 安全研究平台

Next.js React Docker License CVE PunchingBag Platform

⚠️ 仅用于教育目的:这是一个故意存在漏洞的应用程序,设计用于授权的安全研究和CTF挑战。请勿在未经授权的系统上使用这些技术。

一个故意存在漏洞的 Next.js 15.1.6 应用程序,演示了 CVE-2025-55182(React2Shell)——React Server Components 中的一个严重远程代码执行漏洞。专为安全研究员、渗透测试人员和学生在安全、隔离的环境中练习利用技术而构建。


📋 目录

  • 关于 CVE-2025-55182
  • 特性
  • 前提条件
安装
  • 使用
  • CTF 挑战
  • 利用指南
  • 项目结构
  • 安全声明
  • 贡献
  • 许可证
  • 致谢

  • 🔍 关于 CVE-2025-55182

    CVE-2025-55182,也称为 React2Shell,是一个影响 Next.js 中 React Server Components 的严重远程代码执行 (RCE) 漏洞。

    漏洞详情

    • CVE ID:CVE-2025-55182
    • 类型:远程代码执行 (RCE)
    • CVSS 评分:10.0(严重)
    • 受影响版本:启用了 React Server Components 的 Next.js 15.1.6 及更早版本
    • 攻击向量:RSC Flight 协议中的不安全反序列化
    • 影响:完全系统入侵、数据泄露、权限提升

    工作原理

    该漏洞源于 React Server Actions 中对序列化数据的不当处理。攻击者可以构造恶意负载,绕过验证并在服务器上执行任意代码,通过:

    1. JavaScript 对象的原型污染
    2. React Flight 负载的不安全反序列化
    3. Server Action 参数操纵
    4. Server Components 中的头部注入

    ✨ 特性

    • 🐳 完全 Docker 化 - 与主机系统完全隔离
    • 🎯 5 个 CTF 旗帜 - 渐进难度挑战
    • 🔓 多种攻击向量 - Server Actions、API 路由、认证绕过
    • 📚 教育资源 - 内置提示和利用指南
    • 🛡️ 安全环境 - 不对生产系统造成风险
    • 🎨 逼真应用程序 - 带有管理面板的真实应用主题
    • 📊 进度追踪 - 监控您捕获的旗帜
    • 🔧 存在漏洞的 React 和 Next.js 版本 - React 19.0.0、Next.js 15.1.6

    🔧 前提条件

    开始之前,请确保已安装以下内容:

    • Docker:版本 20.10 或更高
    • Docker Compose:版本 2.0 或更高
    • Git:用于克隆仓库

    检查您的安装

    root@kitploit:~
    docker --version
    docker-compose --version
    git --version
    

    📦 安装

    快速开始

    root@kitploit:~
    # 1. 克隆仓库
    git clone https://github.com/Machine-farmer/PunchingBag-for-React2Shell.git
    cd PunchingBag-for-React2Shell
    
    # 2. 使用 Docker 构建并运行
    docker-compose up --build
    
    # 3. 访问应用程序
    # 在浏览器中打开:http://localhost:3000
    

    手动设置(不使用 Docker)

    root@kitploit:~
    # 1. 克隆仓库
    git clone https://github.com/Machine-farmer/punchingbag-cve-2025-55182.git
    cd punchingbag-cve-2025-55182
    
    # 2. 安装依赖
    npm install
    
    # 3. 运行开发服务器
    npm run dev
    
    # 4. 访问 http://localhost:3000
    

    ⚠️ 警告:不建议安全研究使用手动设置(无 Docker)。始终使用 Docker 进行隔离。


    🚀 使用

    启动环境

    root@kitploit:~
    # 启动存在漏洞的应用程序
    docker-compose up
    
    # 以分离模式启动(后台)
    docker-compose up -d
    
    # 查看日志
    docker-compose logs -f
    

    停止环境

    root@kitploit:~
    # 停止容器
    docker-compose down
    
    # 停止并移除卷
    docker-compose down -v
    
    # 完全清理(移除镜像)
    docker-compose down -v --rmi all
    

    访问应用程序

    运行后,导航到:

    • 首页:http://localhost:3000
    • 仪表板:http://localhost:3000/dashboard
    • 管理面板:http://localhost:3000/admin

    🎯 CTF 挑战

    PunchingBag 包含 5 个隐藏旗帜,测试不同的利用技术:

    旗帜挑战难度积分
    🚩 旗帜 1基础侦察简单100
    🚩 旗帜 2Server Action 利用中等200
    🚩 旗帜 3管理员访问绕过中等300
    🚩 旗帜 4远程代码执行困难400
    🚩 旗帜 5环境秘密中等250

    旗帜格式

    所有旗帜遵循格式:CTF{description_here}

    提示

    • 旗帜 1:探索应用程序结构和仪表板
    • 旗帜 2:查找接受用户输入的 Server Actions
    • 旗帜 3:检查环境变量中的凭证
    • 旗帜 4:利用管理控制台中的 RCE 漏洞
    • 旗帜 5:提取隐藏的配置数据

    🔓 利用指南

    您需要的工具

    • Burp Suite - HTTP 请求拦截和修改
    • curl - 命令行 HTTP 客户端,用于构造负载
    • 浏览器 DevTools - 网络流量检查
    • Postman - API 测试(可选)

    基本利用工作流程

    1. 侦察

    root@kitploit:~
    # 探索应用程序
    curl http://localhost:3000
    
    # 检查可用端点
    curl http://localhost:3000/dashboard
    curl http://localhost:3000/admin
    

    2. Server Action 利用

    拦截表单提交并修改负载:

    root@kitploit:~
    // 示例恶意负载
    {
      "name": "attacker",
      "email": "[email protected]",
      "message": "__proto__: { isAdmin: true }"
    }
    

    3. 头部注入

    root@kitploit:~
    # 注入恶意头部
    curl -X POST http://localhost:3000/api/data \
      -H "Content-Type: application/json" \
      -H "x-user-data: {\"role\":\"admin\"}" \
      -d '{"exploit": true}'
    

    4. 管理员访问

    检查 .env.local 获取凭证或利用认证:

    root@kitploit:~
    # 默认管理员令牌(故意弱)
    用户名:admin
    令牌:super_secret_admin_key_12345
    

    5. 远程代码执行

    在存在漏洞的组件上使用命令执行功能:

    root@kitploit:~
    # 模拟 RCE
    命令:cat /flag.txt
    

    高级技术

    • 原型污染:注入 __proto__ 属性
    • RSC 负载构造:修改 React Flight 序列化数据
    • 会话劫持:操纵认证令牌
    • API 模糊测试:测试所有端点的漏洞

    📁 项目结构

    root@kitploit:~
    punchingbag-cve-2025-55182/
    ├── app/
    │   ├── actions.js              # 存在漏洞的 Server Actions
    │   ├── layout.js               # 应用程序布局
    │   ├── page.js                 # 带有 CTF 信息的首页
    │   ├── globals.css             # 全局样式
    │   ├── admin/
    │   │   └── page.js            # 管理面板(旗帜 3、4)
    │   ├── dashboard/
    │   │   └── page.js            # 用户仪表板(旗帜 1、2)
    │   └── api/
    │       ├── data/
    │       │   └── route.js       # API 端点
    │       └── submit/
    │           └── route.js       # 表单提交端点
    ├── components/
    │   ├── Logo.js                # 应用程序标志
    │   ├── VulnerableForm.js      # 可利用的表单组件
    │   └── UserDisplay.js         # 用户资料展示
    ├── lib/
    │   └── flags.js               # 旗帜管理
    ├── public/
    │   └── boxing-bag.png         # 应用程序图标
    ├── .env.local                 # 环境变量(旗帜 5)
    ├── docker-compose.yml         # Docker 配置
    ├── Dockerfile                 # 容器定义
    ├── next.config.js             # Next.js 配置
    ├── package.json               # 依赖项
    └── README.md                  # 本文档
    

    🛡️ 安全声明

    ⚠️ 重要免责声明

    该应用程序是故意存在漏洞的,设计用于:

    ✅ 授权用途:

    • 安全研究和教育
    • 渗透测试技能发展
    • CTF 竞赛和培训
    • 网络安全学术课程
    • 漏洞评估实践

    ❌ 禁止用途:

    • 在未经明确授权的系统上进行测试
    • 任何形式的生产部署
    • 对真实系统的恶意攻击
    • 为非法目的分发利用工具

    法律合规

    • 始终获得书面许可后再测试您不拥有的系统
    • 对真实漏洞遵循负责任披露实践
    • 遵守关于安全测试的当地法律和法规
    • 尊重所有系统和平台的服务条款

    隔离要求

    • 始终使用 Docker 运行以实现适当隔离
    • 切勿将端口 3000 暴露到公共互联网
    • 仅在受控实验室环境中使用
    • 研究结束后停止/销毁容器
    root@kitploit:~
    # 使用后正确清理
    docker-compose down -v --rmi all
    

    🤝 贡献

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

    如何贡献

    1. Fork 该仓库
    2. 创建功能分支(git checkout -b feature/AmazingFeature)
    3. 提交您的更改(git commit -m 'Add some AmazingFeature')
    4. 推送到分支(git push origin feature/AmazingFeature)
    5. 打开一个 Pull Request

    贡献想法

    • 添加新的利用挑战
    • 改进文档
    • 创建视频教程
    • 添加新的漏洞演示
    • 改进 UI/UX
    • 编写自动化利用脚本

    行为准则

    • 保持尊重和专业
    • 专注于教育价值
    • 不要添加恶意代码
    • 提交前彻底测试

    📜 许可证

    该项目根据 MIT 许可证 授权 - 详见 LICENSE 文件。

    第三方资源

    • 沙袋图标来自 Flaticon(带有归属的免费许可证)

    🙏 致谢

    • Next.js 团队 - 提供框架(并修补了漏洞)
    • React 团队 - 提供 React Server Components
    • 安全研究员 - 发现并披露了 CVE-2025-55182
    • CTF 社区 - 提供灵感和方法论
    • OWASP - 提供安全测试指南

    教育资源

    • OWASP Top 10
    • PortSwigger Web Security Academy

    📞 联系与支持

    • 问题:GitHub Issues
    • 讨论:GitHub Discussions

    🔄 更新与变更日志

    版本 1.0.0(2025 年 12 月)

    • 初始发布
    • 5 个 CTF 挑战
    • Docker 支持
    • 完整文档

    ⭐ 星标历史

    如果该项目帮助您学习了 Web 安全,请考虑给它一个星标!⭐


    用 🥊 为安全研究打造

    记住:能力越大,责任越大。道德或不道德地使用你的技能,开玩笑😁,切勿不道德使用。

    报告 Bug · 请求功能 · 文档

    下载工具