加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

谷歌决定不修复这个Chromium浏览器XSS漏洞

发布时间:2022-12-10 14:03:53 所属栏目:安全 来源:未知
导读:
聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士

安全研究员 Michal Bentkowski 发布文章指出,如果能够诱骗 Chromium 浏览器用户在开发者面板中插入简单的 JavaScript 命令,则恶

7e1c68ff600146b8b9e4f7fde0ff3fec.gif

聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

2a459e6ebdd5e749ca8d833c38afd1d7.gif

安全研究员 Michal Bentkowski 发布文章指出,如果能够诱骗 Chromium 浏览器用户在开发者面板中插入简单的 JavaScript 命令,则恶意人员能够在网站子域名中发动XSS攻击。虽然该漏洞难以遭利用且谷歌决定不修复,但透过该案例,我们可以看到浏览器安全的复杂性。

同源策略和站点隔离

Chromium浏览器具有多种XSS攻击防御措施。同源策略特性阻止一款浏览器中的脚本访问另外一个域名中的cookie和数据。站点隔离可使每个域名分别阻止其它网站互相访问浏览器中的内存空间。

然而,值得注意的是,同源策略和站点隔离并不适用于子域名。

因此,开启两个浏览器标签,则 和 可以在同一个进程中运行,且会被视作同源 (google.com)。

开发者控制台脚本

浏览器的防护机制不仅适用于页面内脚本,而且还适用于在浏览器开发者控制台中运行的脚本。然而,开发者控制台能够访问页面内脚本无法访问的某些其它函数。其中一个函数就是 debug(),当调用函数时,该函数会在特定事件上设置断点。

Debug()有两个地方值得注意。首先,它有一个可选参数,可使用户用自定义JavaScript代码替换断点功能。第二,当使用开发者控制台在网页上定义 debug() 事件时,它持续刷新页面甚至还会持续到同样页签中同源的其它子域名。

这如何会导致XSS?首先,研究员设置了一个包含两个恶意函数的页面。第一个是XSS payload,它会在当前源的子域名中迭代并运行PoC脚本(在本案例中是 alert() 弹出)。第二个是一个getter 函数 magic(),该函数为appendChild函数定义debug()事件(在页面加载过程中会发生很多次)并重新加载该页面。

由于debug() 需要直接从开发者控制台中调用,因此该页面显示信息,提示用户从开发者控制台中调用magic()。之后,XSS周期被触发并在payload函数中定义的任意数量的子域名中遍历。

影响和修复方案

Bentkowski 指出,“我认为它更像是一个有趣的技术bug,而非可实际利用的东西。我认为这种攻击需要用户交互,因此对于攻击者而言并不是太可行。”

然而,他指出,还是需要考虑两种场景。受陷,对于可使用户创建自己子域名的网站来说,用户可以创建恶意页面并诱骗访客在自己的子域名上触发该XSS函数。第二个场景是,一个子域名上存在XSS漏洞,攻击者想要通过开发者控制台将其升级到其它子域名中。

Bentkowski 在2020年将该问题告知谷歌,后者决定不修复。他指出,“这个问题目前并未分配给任何人网站安全卫士,因此短时间内可能看不到补丁。”不过,谷歌允许Bentkowski 将自己的研究成果发布,告知他由于该bug不再能够通过Chrome扩展进行利用,因此不再成为安全问题。

Bentkowski 表示,“我仍然认为还存在一些我未能发现的权限提升方法,或许你,我亲爱的读者,能够想到一些更好的方法。”

代码卫士试用地址:

开源卫士试用地址:

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!