前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >别用Chrome浏览这篇文章,会崩溃!

别用Chrome浏览这篇文章,会崩溃!

作者头像
FB客服
发布2018-02-06 16:52:41
1.1K0
发布2018-02-06 16:52:41
举报
文章被收录于专栏:FreeBuf

早前就有8个字符让Skype崩溃的例子,今天我们提到的是16个字符让Chrome崩溃,你只需要点击这16个字符,甚至鼠标只是在这16个字节组成的链接周围移动都可导致Chrome崩溃。

挑战谷歌Chrome:只需16字符

这个Bug是Andris Atteka最先发现,在其博客中他解释说只需要在URL中增加一个null字符就可以轻松使得Chrome崩溃。在其博客中所举的例子有26字符长,而我们对其进行了一些精简,最后只需16个字符就可以让Chrome崩溃。

接下来,你可以在Chrome45(最新的稳定版本)以及早前的版本中的浏览器地址栏输入以下字符:

http://a/%%30%30

你的浏览器标签页或者整个浏览器会崩溃

亲测,鼠标触发后页面崩溃:

Atteka目前已经向Google报告了这个Bug:

然而由于Google认为这个Bug本身并非安全问题,所以Atteka没有获得任何奖励,但是可以很容易的看出这个Bug对用户的影响比较大。

在链接上悬停鼠标,点击链接都可以导致你的Chrome选项卡崩溃,甚至连同其他选项卡:

在我们的测试中,Chrome for Windows 以及 Chrome for Mac都受到影响。有趣的是,我在Android版本上无法重现这个Bug。不管我在哪来插入null字符,都无法重现这个Bug。

为什么会这样?

据安全牛报道,问题是这样产生的:

1. URL尾端的%%300被转换成%00(0x30是ASCII码的0),这样就在网址末尾插入了一个空字节; 2. 这行URL被传递给GURLToDatabaseURL()函数,该函数调用ReplaceComponents()函数; 3. 上述行为引起URL被重复处理,并进行至空字节。浏览器认为这个空字节不应该出现,于是标记该URL为无效; 4. 代码路径又返回到The code path returns to GURLToDatabaseURL() 函数,但该函数认为这个URL应该是有效的,然后调用spec()函数; 5. 但该URL实际上是无效的,于是DCHECK()函数引起软件 bail out; 6. 当鼠标指针停留在URL的上面时,这个被认为无效的网址被发送到浏览器认为是有效地址的处理部分,最终标签页发生崩溃。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档