开发者别大意!Node.js未授权安全漏洞,你的服务器可能正在被攻击者远程操控。

admin 2026-02-02 00:35:37 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Node.js近期暴露高危漏洞,开启inspect调试模式并暴露公网时,攻击者可无认证远程执行任意命令接管服务器。公网排查发现近900个受影响资产。建议开发者非必要不开启调试,确需使用时务必绑定本地地址并限制访问,避免远程操控风险。 综合评分: 85 文章分类: 漏洞预警,漏洞分析,WEB安全


cover_image

开发者别大意!Node.js 未授权安全漏洞,你的服务器可能正在被攻击者远程操控。

听风安全

2025年9月8日 12:57 北京

以下文章来源于GobySec ,作者Gobybot

GobySec .

新一代网络安全测试工具,由赵武Zwell(Pangolin、FOFA作者)打造,能够针对一个目标企业梳理最全的攻击面信息,同时能进行高效、实战化漏洞扫描,并快速的从一个验证入口点,切换到横向。

免责声明

由于传播、利用本公众号听风安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号听风安全及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

公众号现在只对常读和星标的公众号才展示大图推送,

建议大家把听风安全设为星标,否则可能就看不到啦!


各位前端开发师傅请注意!作为前端开发领域的核心库之一,Node.js 近期被发现一个高危漏洞 ——只要开启Node.js inspect调试模式并将服务暴露于公网,攻击者即可无需任何认证访问服务器执行任意命令。

Node.js 在开发领域中的重要性不言而喻:在工具链构建与自动化领域中,Webpack 打包、Babel 转译、ESLint 代码校验等基础开发流程均依赖 Node.js 实现。服务端开发中,借助 Express、Koa 等框架,可快速搭建轻量高并发的 API 服务;实时应用场景下,依托非阻塞 I/O 模型,结合 Socket.io 能高效实现即时通讯功能;。此外,基于 Next.js、Nuxt.js 等框架,还可实现 React、Vue 技术栈的全栈开发,优化用户体验与 SEO 表现。可以说,Node.js 已成为现代前端开发体系中不可或缺的组成部分。

【漏洞发现】

近日,Goby 安全团队的研究人员正在开展企业公网资产的安全普查工作,其中针对 Node.js 服务的专项安全排查是重点内容之一。在排查过程中,研究人员发现部分 Node.js 服务的端口响应存在异常特征:这些服务在特定请求下会返回与调试模式相关的标识信息。

进一步测试后竟意外发现:当 Node.js 服务开启 inspect 调试模式时,通过浏览器访问其生成的调试地址,竟可直接进入调试控制台,且无需任何认证即可执行任意命令,这意味着浏览器直接变身shell终端。

fine!虽然Nodejs官方文档中明确说明了inspect参数的安全风险,但是看来依然有不少粗心大意的开发者在衍生的框架和库中滥用inspect参数。

【资产暴露面分析】

为摸清影响范围,研究人员提取了开启 inspect 调试模式的服务资产指纹信息:

FOFA查询语法:

body="WebSockets request was expected"

竟有将近900个开启了该调试服务的暴露资产,按照理论上的攻击路径,目前这些暴露在公网的服务一旦被非法利用,中招率100%。

【漏洞影响分析】

这个漏洞的风险点在于门槛极低,一旦暴露公网,攻击者很容易利用它实现对服务器的控制。

一般来说若要用Chrome远程某个客户端的终端进程,需要在Chorme设置中指定监听客户端的IP及端口,之后点击inspect才能够进入控制台。

但是Node.js很“贴心”地把快捷链接调试地址返回到了前台页面,使用该链接即可直接连接到远程终端。

【漏洞复现】

(演示为本机环境)

第一步:访问{host} /json  获取调试地址

第二步:启动chrome开发者模式,通过chrome访问调试地址即可打开控制台:

第三步:在控制台输入Node.js代码即可执行任意命令:

读取服务器根目录:

require("child_process").exec("ls /", (err,std) => console.log(std))

操作被控制机器:

require("child_process").exec("open -a Calculator", (err,std) => console.log(std))

【解决方案】

  • 严格遵循Node.js官方安全指引,非必要不开启 inspect 调试功能。

  • 若开发过程中确需使用,务必确保调试服务仅绑定本地地址(如 –inspect=127.0.0.1:9229),禁止暴露于公网,并通过防火墙、IP 白名单等手段限制访问权限。

不可错过的往期推荐哦

![](https://mmbiz.qpic.cn/mmbiz_gif/AFgdiaw95AaNY572lpficoa3l1cVE17VfZ4WDWhcMYWJbibW3UvQP4H2Izrsic6ZSlqnw3DtMzjzJHvuhGJ2V6CF2A/640?wx_fmt=gif&wxfrom=5&wx_lazy=1&retryload=1&randomid=tfibc7o0&tp=webp#imgIndex=24)

实战案例三则分享(含人脸绕过)

利用解析差异复活某凌OA前台RCE

攻防演练中如何快速抢分

敏感行业下的Fastjson打点实战:攻破加固N次的“古董级”系统

记一次对某涩涩APP的逆向过程

破译之眼:AI重构前端渗透对抗新范式

渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入

点击下方名片,关注我们

觉得内容不错,就点下“”和“在看

如果不想错过新的内容推送可以设为星标


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:听风安全 《开发者别大意!Node.js 未授权安全漏洞,你的服务器可能正在被攻击者远程操控。》

评论:0   参与:  0