用于扫描 React2Shell(CVE-2025-55182)的 Nmap NSE 脚本
免责声明 以下代码仅供教育和研究目的使用。 使用本脚本的风险和责任完全由使用者自行承担。
本扫描器可能产生误报或不确定的结果,因此使用者有责任验证并确认任何报告的发现。作者对因执行此代码而导致的滥用、损害或意外后果不承担任何责任。
请仅在您拥有明确授权的环境中使用此工具。未经授权测试系统是严格禁止的,并可能触犯法律。
作者:Kevin Leon
类别:discovery、vuln、intrusive
脚本类型:Nmap NSE
nmap --script http-vuln-cve2025-55182.nse -p- <target>
nmap --script http-vuln-cve2025-55182.nse -p3000,3001,3002 <target>
nmap --script http-vuln-cve2025-55182.nse \
--script-args=http-vuln-cve2025-55182.waf_bypass=true <target>
PORT STATE SERVICE
3000/tcp open ppp
| http-vuln-cve2025-55182:
| VULNERABLE:
| React2Shell Remote Code Execution (RCE)
| State: VULNERABLE
| IDs: CVE:2025-55182
| Risk factor: High CVSS: 10.0
| Disclosure date: 2025-12-03
| References:
| https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
| https://nvd.nist.gov/vuln/detail/CVE-2025-55182
| https://github.com/assetnote/react2shell-scanner
|_ https://github.com/msanft/CVE-2025-55182
在尝试利用之前,脚本会验证目标是否可能正在运行:
检测方法
脚本首先执行一次:
http.get(host, port, "/")
并检查:
X-Powered-By: next.jsX-Powered-By: react_next
(表明存在 Next.js 静态资源)则目标被认为是潜在易受攻击的。
Multipart 边界生成
脚本生成一个随机化的 WebKit 格式边界:
----WebKitFormBoundary<random 16 chars>
这用于 multipart/form-data 利用。
取决于用户参数:
简单利用载荷
WAF 绕过载荷
--script-args=http-vuln-cve2025-55182.waf_bypass=true
包含更多字段和混淆以绕过中间件。
在载荷内部,脚本注入:
process.mainModule.require('child_process')
.execSync('echo $((41*271))')
该命令的计算结果为 11111,稍后用于通过重定向摘要检测来验证利用是否成功。
脚本通过向多个已知的 RSC 端点 POST 精心构造的载荷来尝试利用该漏洞:
/
/_action
/api/action
/api
/_next/data
/__rsc
/action
/server
/server/action
每个请求以如下方式发送:
http.post(host, port, path, header, payload)
情况 A — HTTP 500 服务器错误
成功的反序列化失败表明可能存在漏洞:
情况 B — 存在 NEXT_REDIRECT 摘要
载荷强制触发服务器端重定向:
NEXT_REDIRECT;push;/login?a=11111;307;
脚本检查响应头中是否包含:
11111 的重定向如果找到 → 极有可能存在漏洞
根据检测结果,脚本填写标准的 NSE 漏洞报告:
VULNERABLE_VULN ┌──────────────────────┐
│ Start NSE Script │
└─────────────┬────────┘
│
▼
┌────────────────────┐
│ Request "/" │
│ Check headers/body │
└──────────┬─────────┘
│Yes
▼
┌────────────────────┐
│ React/Next.js Detected? ── No ─▶ Exit (Not Vulnerable)
└──────────┬─────────┘
│Yes
▼
┌────────────────────┐
│ Build multipart │
│ exploit payload │
└──────────┬─────────┘
▼
┌─────────────────────────────────┐
│ Loop through RSC endpoints │
│ Send POST exploit payload │
└──────────┬──────────────────────┘
│
┌─────────┴──────────────────────────────┐
▼ ▼
┌───────────────┐ ┌───────────────────┐
│ HTTP 500? │ YES │ Redirect digest? │ YES
└───────┬────────┘ └────────┬──────────┘
│NO │NO
▼ ▼
Continue testing Continue testing
│ │
└──────────────────────────────┬─────────┘
▼
┌────────────────────┐
│ Vulnerable? │
└──────────┬─────────┘
▼
Generate Report
该脚本为高影响力的 React2Shell 漏洞提供了一种全面、自动化且安全的检测机制。其分层验证方法确保了可靠的检测,同时最大限度地减少了误报。