R2S (React2Shell) 是一款安全测试工具,旨在帮助安全研究人员、开发人员和渗透测试人员评估其 Next.js 应用程序是否存在 CVE-2025-55182 漏洞。
CVE-2025-55182 是一个影响某些版本(例如 16.0.5)的 Next.js Server Actions 的关键漏洞。该漏洞允许攻击者通过未正确保护的 Server Actions 在服务器上执行任意命令,从而导致远程代码执行 (RCE)。
R2S 可帮助您检查您的应用程序是否存在此问题,以便您能在恶意攻击者发现之前修复它。
--windows)⚠️ 严重警告:如果使用不当,--windows 标志可能导致工具无法正确判定漏洞。
--windows:仅当您 100% 确定目标服务器是 Windows 时才使用--windows,命令将失败,工具可能会报告“未发现漏洞”,即使服务器实际存在漏洞--windows示例:```bash
r2s -u http://linux-server.com -t --windows
r2s -u http://linux-server.com -t
---
## ⚠️ 法律免责声明
**重要提示:使用此工具前请阅读**
1. **此工具仅用于合法安全测试**
- ✅ 测试您自己的应用程序
- ✅ 测试您已获得书面授权进行测试的应用程序
- ✅ 教育目的和安全研究
- ❌ **切勿在您不拥有或未经许可测试的系统上使用**
- ❌ **切勿用于恶意目的**
2. **使用此工具即表示您同意:**
- 您仅在您拥有或拥有明确书面许可的系统上使用它
- 您了解未经授权访问计算机系统是非法的
- 您对自己的行为承担全部责任
- 作者不对任何滥用此工具的行为负责
3. **法律后果:**
- 在大多数国家,未经授权访问计算机系统属于犯罪行为
- 您可能面临刑事指控、罚款和监禁
- 测试前务必获得书面许可
4. **此工具按“现状”提供,不附带任何形式的担保**
**如果您未满 18 岁,请确保在使用此工具前有成人监督并获得许可。**
---
## ✨ 功能特性
### 核心能力
- 🔍 **漏洞检测** - 快速测试服务器是否存在 CVE-2025-55182 漏洞
- 💻 **交互式 Shell** - 通过 HTTPS 提供完整的交互式 shell 会话,支持命令历史
- 📁 **文件操作** - 列目录、读取文件以及导出文件/归档
- 🔐 **机密信息提取** - 尝试读取应用程序机密(.env 文件、配置文件)
- 📄 **代码提取** - 尝试读取应用程序源代码
- 🖥️ **系统信息** - 收集操作系统信息、主机名、用户和环境变量
### 高级功能
- 🚀 **自动预热 Payload** - 自动优化 payload 以获得最佳结果
- ⚡ **并行执行** - 同时运行多个命令
- 🎲 **Payload 随机化** - 通过动态 payload 规避检测
- 🛠️ **漏洞利用模块** - Metasploit 风格模块系统(env_dump、file_search、network_scan、process_list)
- 🔄 **重定向处理** - 自动跟随 HTTP 重定向(301、302、303、307、308)
- 🎨 **精美的界面** - 彩色输出,便于阅读
- 📊 **全面报告** - 自动保存 JSON、HTML、TXT 格式的报告,并提供特定操作格式化器
- ⚙️ **配置系统** - 基于 JSON 的配置,带交互式设置面板
- 📦 **导出功能** - 将单个文件或整个应用目录导出为 zip 归档
- 🔒 **WAF 绕过** - 多种绕过技术(⚠️ 不保证成功 - 请参阅下方限制)
### 报告与日志
- 📝 **自动保存报告** - 自动将报告保存到 `~/.r2s/reports/`,使用人类可读的时间戳
- 📋 **操作特定格式** - 针对不同操作(shell、test、secrets 等)使用不同的报告格式
- 📜 **命令历史** - 持久化命令历史,保存到 `~/.r2s/history`
- 🔍 **审计追踪** - 将所有操作的详细日志记录到 `~/.r2s/logs/audit.log`
- 🎨 **HTML 报告** - 美观的 HTML 报告,支持深色/浅色模式、复制按钮和代码块
---
## 📦 安装
### 选项 1:从源代码构建(推荐)
1. **克隆仓库:** ```bash
git clone https://github.com/zamdevio/r2s.git
cd r2s
pip install -r requirements.txt
python3 -m react2shell.main --help
r2s --help
---
## 🚀 快速开始
### 基本漏洞测试```bash
# Test if a server is vulnerable
r2s -u http://localhost:3000 -t
# With verbose output for more details
r2s -u http://localhost:3000 -t -v
⚠️ 重要提示:除非你确定目标是 Windows,否则不要使用 --windows。在 Linux 服务器上使用 --windows 会导致漏报(即使服务器存在漏洞,工具也可能报告“不存在漏洞”)。
我们在 https://r2s-arena.fly.dev 提供了一个安全的测试环境:```bash
r2s -u https://r2s-arena.fly.dev -t
### 本地测试
有关在本地运行易受攻击的应用的说明,请参阅 [`nextjs/README.md`](https://github.com/zamdevio/r2s/blob/main/nextjs/README.md)。
---
## 📚 使用示例
### 快速命令参考
**最常用命令:**
- `r2s -u URL -t` - 测试是否存在漏洞(最常用)
- `r2s -u URL --shell` - 启动交互式 shell
- `r2s --targets FILE -t` - 批量扫描多个目标
- `r2s -u URL --system-info` - 获取系统信息
- `r2s -u URL --secrets` - 尝试读取机密信息
- `r2s -u URL --export-archive` - 将整个应用导出为 zip
**⚠️ 请记住**:除非目标是 Windows,否则不要使用 `--windows`!
---