一款安全、非侵入式的扫描器,用于检测 React Server Components (RSC) 和 Next.js 远程代码执行漏洞 (CVE-2025-55182 与 CVE-2025-66478)。
本扫描器帮助组织识别其 Web 服务是否受 React2Shell 漏洞影响,该漏洞影响使用了 React Server Components 和 Next.js 的应用程序。攻击者可通过特制的 multipart 表单数据实现远程代码执行。
重要提示:本扫描器仅使用安全的侧信道检测方法,不会在目标系统上执行代码。
安全的检测方法
灵活的扫描选项
/_next、/api)输出选项
pip install -r requirements.txt
或手动安装:
pip install requests tqdm urllib3
扫描单个 URL:
python scanner.py -u https://example.com
从文件扫描多个主机:
python scanner.py -l hosts.txt
使用自定义路径扫描:
python scanner.py -u https://example.com --path /_next --path /api
从文件读取路径进行扫描:
python scanner.py -u https://example.com --path-file paths.txt
自定义请求头:
python scanner.py -u https://example.com -H "Authorization: Bearer token" -H "X-Custom: value"
多线程扫描:
python scanner.py -l hosts.txt -t 20
将结果导出为 JSON:
python scanner.py -l hosts.txt -o results.json
导出所有结果(包括非易受攻击主机):
python scanner.py -l hosts.txt -o results.json --all-results
详细模式(显示所有主机的详细信息):
python scanner.py -l hosts.txt -v
静默模式(仅显示易受攻击的主机):
python scanner.py -l hosts.txt -q
禁用颜色:
python scanner.py -l hosts.txt --no-color
每行一个主机。以 # 开头的行被忽略。
https://example.com
http://test.example.org
another-site.com
# This is a comment
每行一个路径。若路径不以 / 开头,将自动添加前缀。
/_next
/api
/actions
# Comment lines are ignored
| 选项 | 描述 |
|---|---|
-u, --url URL | 要扫描的单个 URL |
-l, --list FILE | 包含要扫描主机列表的文件 |
-t, --threads N | 并发线程数(默认:10) |
--timeout N | 请求超时时间(秒,默认:10) |
-o, --output FILE | 结果输出文件(JSON 格式) |
--all-results | 保存所有结果,不仅限于易受攻击主机 |
-k, --insecure | 禁用 SSL 证书验证 |
-H, --header HEADER | 自定义请求头(可多次使用) |
-v, --verbose | 详细输出(显示所有主机的详细信息) |
-q, --quiet | 静默模式(仅显示易受攻击的主机) |
--no-color | 禁用彩色输出 |
--path PATH | 要测试的自定义路径(可多次使用) |
--path-file FILE | 包含要测试路径列表的文件 |
扫描器采用非侵入式检测方法,它:
JavaScript 错误信息
SyntaxError — 表示表单数据的 JSON 解析不正确Unexpected token — 暗示易受攻击的 RSC 反序列化ReferenceError / TypeError — 暴露不安全的对象属性访问RSC 特定错误响应
text/x-componentVary: RSC, Next-Router-State-Tree){"digest":"..."})$@, 错误对象)扫描器既能检测到详细的错误消息(旧版本),也能检测到结构化的 RSC 错误响应(新版本),确保对不同的 Next.js 实现实现全面覆盖。
重要提示: 此方法不会在目标系统上执行任何代码。它仅通过观察错误响应来检测系统是否易受攻击。
python scanner.py -u https://myapp.com
# 创建包含所有域名的主机文件
python scanner.py -l organization-hosts.txt -t 20 -o scan-results.json
# 创建包含常见 Next.js 端点的 paths.txt 文件
python scanner.py -l hosts.txt --path-file paths.txt -o results.json
python scanner.py -u https://myapp.com -H "Cookie: session=abc123" -H "Authorization: Bearer token"
如果检测到以下情况,扫描器将把主机标记为 VULNERABLE:
当扫描器检测到漏洞时,意味着:
0:未发现漏洞1:发现一个或多个漏洞-t) 以避免对目标造成过大负载如果发现您的应用程序易受攻击:
立即行动:
长期安全:
参考资料:
此工具仅用于授权的安全测试。未经授权访问计算机系统是违法的。作者不对该程序的误用或造成的损害负责。