问题突出了防止客户端攻击的挑战

铬绕过消毒剂API中的原型污染错误

Chromium项目中的原型污染错误允许攻击者绕过消毒剂API,这是一个内置浏览器库,用于从用户控制的输入源中删除潜在的恶意代码。

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

安全研究员MichałBentkowski报道,该错误突出了防止客户端的挑战原型污染攻击。

客户端原型污染

原型污染可能在客户端(浏览器)和服务器端(Node.js服务器)上发生。对该主题进行了广泛研究的Bentkowski在探索客户端原型污染脆弱性时发现了新的错误。

消毒剂API被添加到铬中浏览器支持本地卫生化作为替代第三方库,例如Dompurify。

根据Bentkowski的发现,如果JavaScript对象消毒剂以一个空对象作为参数实例化,则将触发一种内部机制绕过消毒流。Bentkowski告诉每日swbeplay2018官网ig空对象会导致浏览器“穿越原型链”。


背景原型污染:影响JavaScript应用的危险和被低估的缺陷


作为概念证明,Bentkowski表明,API错过了嵌入SVG对象中的JavaScript片段的消毒。一旦将所谓的SVG插入到页面中,则执行JavaScript代码。

Bentkowski在他的报告中指出,为了工作的脆弱性,浏览器的#启用 - 实验 - 温布平台功能beplay体育能用吗必须启用。

“我的猜测是,启用了这个标志的人数很少,”本特科夫斯基说。“但是,默认情况下启用了消毒剂API铬合金105(在8月底发布),因此受影响的用户群现在更大。”

错误还是功能?

讨论线程在铬错误跟踪器上显示了在原型污染错误上绘制边界的一些复杂性。操纵原型是使JavaScript灵活和多功能的功能之一,这意味着针对原型污染攻击的应用程序将始终需要Web开发人员的精心努力。beplay体育能用吗

正如一位安全研究人员在讨论线程中指出的那样,原型污染向量不是消毒剂API中应解决的问题。

“Environments that have their Object prototypes polluted are already compromised, and I don’t think selectively hardening chosen web APIs against that would offer much practical benefit, and it may only offer a false sense of security, at the expense of API cognitive complexity,” the researcher wrote.

“在报告错误之前,我没有意识到存在一个专门定义的webidl规范,该规范必须遍历原型链beplay体育能用吗beplay体育能用吗Web API,” Bentkowski说。

“这意味着实际上,这是一个功能,现在无法更改,因为这将是落后的兼容;也就是说,许多申请将被打破。”

因此,开发人员需要识别和删除从用户控制源污染原型的所有小工具。

尽管如此,Bentkowski的发现确实导致了一些修复。“ [错误]仅在SVG示例上工作。最后,这是提交的真正错误。”他说。

“原型污染本身被认为是'特征'。但是,不可能通过特殊构造的配置对象绕过消毒剂。”


不要错过Uber Hack与PowerShell脚本发现的硬编码秘密有关