客户端原型污染

high Web App Scanning 插件 ID 112719

简介

客户端原型污染

描述

基于原型的编程语言依赖于将对象定义为原型的过程,随后还会对其进行扩展或克隆以创建新对象。实例化后,这些对象将从其原型的属性和方法继承。

JavaScript 是现代 web 应用程序中(在服务器端和客户端组件中)最常用的基于原型的语言之一。几乎所有 JavaScript 对象都是对象的实例,可让它们继承对象原型的属性和方法。

当攻击者能够在 Web 浏览器环境中修改对象原型的属性时,发现一个客户端原型污染漏洞,使应用程序用户遇到进一步的问题(例如跨站脚本或拒绝服务攻击)攻击。

解决方案

输入应得到正确审查,以防止在某些操作(如合并或克隆对象)期间尝试利用原型或构造函数等属性时修改对象原型。在没有原型的情况下,也可以通过使用 Object.create(null) 构造函数对 JavaScript 对象进行显式实例化操作。最后,应倾向于使用 Map 对象作为键和值存储,因为它不包含对象原型键,从而防止污染的发生。

另见

https://portswigger.net/daily-swig/prototype-pollution-the-dangerous-and-underrated-vulnerability-impacting-javascript-applications

https://research.securitum.com/prototype-pollution-and-bypassing-client-side-html-sanitizers/

https://snyk.io/blog/snyk-research-team-discovers-severe-prototype-pollution-security-vulnerabilities-affecting-all-versions-of-lodash/

插件详情

严重性: High

ID: 112719

类型: remote

发布时间: 2021/5/6

最近更新时间: 2023/7/6

扫描模板: full, pci, scan

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: Medium

基本分数: 6.5

矢量: CVSS2#AV:N/AC:L/Au:S/C:P/I:P/A:P

CVSS 分数来源: CVE-2021-20083

CVSS v3

风险因素: High

基本分数: 8.8

矢量: CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

CVSS 分数来源: CVE-2021-20083

漏洞信息

可利用: true

易利用性: Exploits are available

参考资料信息

CVE: CVE-2021-20083, CVE-2021-20084, CVE-2021-20085, CVE-2021-20086, CVE-2021-20087, CVE-2021-20088, CVE-2021-20089