Sec Hotspot 首页  排行榜  收藏本站  技术博客  RSS
统计信息
已收录文章数量:13722 篇
已收录公众号数量:89 个
本站文章为爬虫采集,如有侵权请告知
已收录微信公众号
网信中国 区块链大本营 白说区块链 区块链投资家 区块链官微 区块链铅笔Blockchain HACK学习呀 二道情报贩子 合天智汇 小白帽学习之路 小米安全中心 弥天安全实验室 SAINTSEC SecPulse安全脉搏 TideSec安全团队 360安全卫士 游侠安全网 计算机与网络安全 安全祖师爷 安全学习那些事 腾讯安全联合实验室 黑客技术与网络安全 安全圈 腾讯御见威胁情报中心 Python开发者 Python之禅 编程派 Python那些事 Python程序员 安全威胁情报 吾爱破解论坛 行长叠报 安在 i春秋 嘶吼专业版 E安全 MottoIN 网信防务 网安杂谈 数说安全 互联网安全内参 漏洞战争 安全分析与研究 邑安全 ChaMd5安全团队 天融信阿尔法实验室 安全牛 SecWiki 安全学术圈 信安之路 漏洞感知 浅黑科技 Secquan圈子社区 奇安信集团 奇安信 CERT 国舜股份 雷神众测 盘古实验室 美团安全应急响应中心 瓜子安全应急响应中心 顺丰安全应急响应中心 蚂蚁金服安全响应中心 携程安全应急响应中心 滴滴安全应急响应中心 字节跳动安全中心 百度安全应急响应中心 腾讯安全应急响应中心 网易安全应急响应中心 OPPO安全应急响应中心 京东安全应急响应中心 Bypass CNNVD安全动态 安恒应急响应中心 天融信每日安全简报 奇安信威胁情报中心 看雪学院 黑白之道 水滴安全实验室 安全客 木星安全实验室 云鼎实验室 绿盟科技安全预警 白帽汇 深信服千里目安全实验室 腾讯玄武实验室 长亭安全课堂 FreeBuf 绿盟科技 nmask
CVE-2020-7699:NodeJS模块代码注入
本文来自公众号:嘶吼专业版   2020.08.05 12:05:54


研究人员在下载量超700万的Node.js 模块中发现其存在安全漏洞,攻击者利用该漏洞可以发起DoS 攻击或完全获取远程shell 访问权限。

该漏洞CVE编号为CVE-2020-7699,位于express-fileupload npm组件中,该组件从npm处下载量超过730万,其中不含有从GitHub、镜像网站和其他克隆库中下载的。

该漏洞属于Prototype Pollution(原型污染)漏洞类型,这是JS代码中的常见漏洞类型。因为JS是基于原型的语言,语言中的每个对象、函数和数据结构都有Prototype特征,可以通过"_proto__"进行修改。

使用这种设计漏洞的原型攻击通过注入不相适应的对象类型到现有的对象中来引发错误,导致DoS攻击。

利用现有原型的攻击

由于express-fileupload 提供的"parseNested"特征使得现实的攻击成为可能。启用"parseNested"选项后,其负责将上传的JSON数据转化为对象。

安全研究人员Posix称express-fileupload 模块提供了[Node.js] 应用中上传和管理文件的多个选项,其中parseNested负责将参数降维。

'parseNested'选项如下图所示:

有漏洞的express-fileupload配置

在"Content-Disposition" HTTP header中提供一个简单的payload,攻击者就可以提供一个"__proto__.toString" 值来触发攻击。

可以触发原型污染攻击的样本payload

"_proto__" 可以影响JS的原型特征,因为继承了所有JS对象和结构。

如果Object.prototype.toString 可以被污染,就会引发错误,对每个请求,[sic]会返回500错误。

通过逆向shell实现远程代码执行

此外,攻击者还可以在有漏洞的系统上获取shell。该漏洞利用了有漏洞的express-fileupload 版本,使用了模板引擎EJS(嵌入式JS模板)。

假设你的应用使用了EJS 来分析上传的数据,而没有进行额外的检查。那么攻击者就可以发送一个HTTP 请求来覆写EJS的outputFunctionName 选项。

远程代码执行的EJS payload

上面的payload中利用了express-fileupload 中的原型污染,让EJS 来启动Node.js 子进程。新启动的进程可以派生一个逆向shell到攻击者的计算机。

建立连接后,攻击者就可以在被黑的服务器上执行任意代码。

通过EJS payload实现shell 访问

漏洞影响

研究人员称该漏洞并不影响所有用户。只有启动了"parseNested" 选项的应用受到该原型污染漏洞的影响。

此外,为了实现完全的shell访问和远程代码执行,有漏洞的express-fileupload和EJS库是必备条件。但需要注意的是EJS 并不是唯一实现shell 访问的唯一库。在接收到研究人员的报告后,express-fileupload很快就修复了该漏洞,用户可以更新到npm v1.1.9。

参考及来源:https://www.bleepingcomputer.com/news/security/nodejs-module-downloaded-7m-times-lets-hackers-inject-code/