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

早前就有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的上面时,这个被认为无效的网址被发送到浏览器认为是有效地址的处理部分,最终标签页发生崩溃。

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2015-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java进阶架构师

手把手带你实现JDK动态代理

业务接口Interface、业务实现类target、业务处理类Handler、JVM在内存中生成的动态代理类$Proxy0

8420
来自专栏北京马哥教育

Python自动化运维之高级函数

一、协程 1.1协程的概念 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。(其实并没有说明白~) 那么这...

31260
来自专栏技术专栏

慕课网Flask构建可扩展的RESTful API-1. 起步与红图

1.蓝图的作用并不是用来拆分视图函数的,而是用来拆分模块的 2.使用蓝图,统一个业务模型的试图函数的前缀都一样,代码重复啰嗦

44420
来自专栏小狼的世界

使用正则匹配并显示匹配的内容

最近在解析HTML文件,遇到这样的一个场景。我需要将HTML文件中data-url="xxx"中的xxx查找并显示出来。

12630
来自专栏FreeBuf

一个漏洞为何能影响数千万服务器以及66%安卓手机?

安全研究团队Perception Point发现Linux系统内核中存在一个高危级别的本地权限提升0day漏洞,编号为CVE-2016-0728。目前有超过66...

23050
来自专栏北京马哥教育

【翻译】Python async/await Tutorial

原文链接: http://stackabuse.com/python-async-await-tutorial/ 过去几年,异步编程方式被越来越多的程序员使用,...

33750
来自专栏ytkah

dedecms自增标签[field:global.autoindex/]的运用

  用bootstrap建站时用到幻灯片切换模块,里面有个active(下面代码中的data-slide-to="0"),其余的按顺序递增(1,2),如果用de...

36840
来自专栏Small Code

MATLAB批量文件重命名(详细解释)

这段时间在用 matlab 做手写数字识别,处理样本的时候需要对样本文件进行重命名,可是有好多,总不能一个一个重命名吧,于是上网百度了好多,不过大多都一样,但是...

38170
来自专栏Java工程师日常干货

纯手写实现JDK动态代理前言JDK动态代理 手写代码实现JDK动态代理

在Java领域,动态代理应用非常广泛,特别是流行的Spring/MyBatis等框架。JDK本身是有实现动态代理技术的,不过要求被代理的类必须实现接口,不过cg...

10620
来自专栏数据和云

性能分析:Oracle的CLOB使用与临时段访问及其性能优化

编辑手记:在系统测试、上线和优化的过程中,抓住核心环节、不放过任何可疑,这是DBA的基本要求之一,在这个案例中,高频度调用的存储过程引起了注意。 客户新上线的一...

54850

扫码关注云+社区

领取腾讯云代金券