无需任何身份验证即可触发一系列漏洞利用链

Blitz.js中的原型污染导致远程代码执行

JavaScript Web应用程序框架Blibeplay体育能用吗tz.js已修补了一个危险原型污染可能导致Node.js服务器上远程代码执行(RCE)的漏洞。

原型污染是一种JavaScript漏洞,允许攻击者利用编程语言的规则来改变应用程序的行为并以各种方式妥协。

新错误,发现并报告了Sonar的研究人员允许攻击者在blitz.js应用程序中操纵代码以创建反向外壳并在服务器上运行任意命令。

依赖性的原型漏洞

Sonar的脆弱性研究人员保罗·格斯特(Paul Gerste)告诉,“ Blitz.js是即将到来的JS框架,在Github上获得了吸引力。”每日swbeplay2018官网ig。“我们选择它是为了帮助保护其代码基础并研究现实世界漏洞。”

Blitz建立在Next.js的顶部,这是一个基于React的框架,并添加了组件以将其变成全堆栈Web开发平台。beplay体育能用吗


深度潜水原型污染:影响JavaScript应用的危险和低估脆弱性


Blitz.js的广告功能之一是其“零API”层,它允许客户端通过简单函数调用服务器端业务逻辑而无需写入API代码。

Blitz.js在后台对服务器进行RPC调用,并返回对客户端函数调用的响应。

“ blitz.js在Next.js的顶部(除其他功能)上添加了一个RPC层,该层使用SuperJson从传入请求中进行挑选数据。脆弱性完全在Superjson内部。”格斯特说。

作为JSON的扩展版本,Superjson增加了对日期,再发格和循环依赖性的支持。循环依赖性功能允许JSON规范参考属性名称,从而导致原型漏洞。攻击者可以使用这些属性名称更改服务器上的运行代码。

RCE在Blitz服务器上

格斯特(GersteRCE

首先,将污染的JSON请求发送到服务器,该请求触发blitz.js的路由机制加载AJavaScript用污染的原型归档。这使攻击者可以使用恶意JavaScript对象执行任意代码。


阅读更多最新的Infosec研究新闻


理想情况下,攻击者将创建并运行服务器上的文件。但是blitz.js不支持上传功能。但是,它具有使用JavaScript的CLI包装脚本spawn()启动新过程的功能。

攻击者可以使用此功能启动CLI进程并在服务器上运行任意命令。


Blitz.js中的原型污染

Blitz.js中的原型污染(图片:Sonarsource.com)


使这种脆弱性特别危险的原因是,它可以在没有任何的情况下触发验证,这意味着任何可以访问blitz.js应用程序的用户都将能够启动RCE攻击。

格斯特说:“攻击者将拥有与脆弱应用程序相同的特权。”“因此,如果应用程序以根而运行,则攻击者也将具有根特权。”

复杂的错误

原型污染错误通常以非常复杂的方式起作用。例如,在Blitz.js的情况下,CLI包装器对象本身并不脆弱,但可能会被原型污染错误滥用。

格斯特说:“这种攻击技术利用了本身并不是脆弱性的代码模式。”“原型污染可以以非常侵入性的方式影响目标应用,并且需要大量工作才能摆脱所有可能受原型污染影响的代码。”

格斯特(GersteObject.Prototype或使用- disable-proto = deletenode.js中的标志

格斯特说:“我认为原型污染对于许多JavaScript开发人员仍然未知。”“我不会看到开发人员使用我们经常在文章中推荐的模式。借助我们的博客文章,我们尝试帮助教育JavaScript开发人员并分享这些知识。”


你可能还喜欢Microsoft团队安全漏洞使用户通过有缺陷的贴纸开放向XSS开放