一个用于检测使用 React Server Components 的 Next.js 应用中 CVE-2025-55182 和 CVE-2025-66478 的命令行工具。
有关该漏洞及检测方法的技术细节,请参阅我们的博客文章:https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
默认情况下,扫描器会发送一个精心构造的 multipart POST 请求,其中包含一个可执行确定性数学运算(41*271 = 11111)的 RCE 概念验证 payload。存在漏洞的主机会在 X-Action-Redirect 响应头中返回结果,格式为 /login?a=11111。
扫描器默认测试根路径(/)。可使用 --path 或 --path-file 测试自定义路径。如果不存在漏洞,它会跟随同主机重定向(例如从 / 到 /en/)并测试重定向目标。不跟随跨源重定向。
--safe-check 标志使用一种替代检测方法,该方法依赖侧信道指标(带有特定错误摘要的 500 状态码),无需在目标上执行代码。当不希望执行 RCE 时,请使用此模式。
--waf-bypass 标志会在 multipart 请求体前附加随机填充数据。这有助于规避仅分析请求体开头部分的 WAF 内容检测。默认大小为 128KB,可通过 --waf-bypass-size 配置。启用 WAF 绕过时,超时时间会自动增加到 20 秒(除非显式设置)。
--vercel-waf-bypass 标志使用一种专门设计用于绕过 Vercel WAF 防护的替代 payload 变体。该变体采用不同的 multipart 结构,并包含一个额外的表单字段。
--windows 标志将 payload 从 Unix shell(echo $((41*271)))切换为 PowerShell(powershell -c "41*271"),用于运行 Windows 的目标。
pip install -r requirements.txt
扫描单个主机:
python3 scanner.py -u https://example.com
扫描主机列表:
python3 scanner.py -l hosts.txt
使用多线程扫描并保存结果:
python3 scanner.py -l hosts.txt -t 20 -o results.json
使用自定义请求头扫描:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
使用安全的侧信道检测:
python3 scanner.py -u https://example.com --safe-check
扫描 Windows 目标:
python3 scanner.py -u https://example.com --windows
使用 WAF 绕过扫描:
python3 scanner.py -u https://example.com --waf-bypass
扫描自定义路径:
python3 scanner.py -u https://example.com --path /_next
python3 scanner.py -u https://example.com --path /_next --path /api
python3 scanner.py -u https://example.com --path-file paths.txt
-u, --url 要检查的单个 URL
-l, --list 包含主机列表的文件(每行一个)
-t, --threads 并发线程数(默认:10)
--timeout 请求超时时间(秒)(默认:10)
-o, --output 结果输出文件(JSON)
--all-results 保存所有结果,而不仅仅是存在漏洞的主机
-k, --insecure 禁用 SSL 证书验证
-H, --header 自定义请求头(可多次使用)
-v, --verbose 显示存在漏洞主机的响应详情
-q, --quiet 仅输出存在漏洞的主机
--no-color 禁用彩色输出
--safe-check 使用安全的侧信道检测替代 RCE PoC
--windows 使用 Windows PowerShell payload 替代 Unix shell
--waf-bypass 添加填充数据以绕过 WAF 内容检测
--waf-bypass-size 填充数据大小(KB)(默认:128)
--path 要测试的自定义路径(可多次使用)
--path-file 包含要测试路径的文件(每行一个)
RCE PoC 最初由 @maple3142 公开披露——我们非常感谢他们发布了可用的 PoC。
该工具最初是为了以安全方式检测 RCE 而构建的。此功能仍可通过 --safe-check(“安全检测”模式)使用。
结果会打印到终端。使用 -o 时,存在漏洞的主机将保存到 JSON 文件中,其中包含完整的 HTTP 请求和响应,以供验证。