分享

这十二行代码是如何让浏览器爆炸的?

 昵称29672273 2016-01-27

来自:FreeBuf.COM _ 关注黑客与极客

作者:雪碧

链接:http://www./articles/terminal/93807.html


起因

在20号刷推特的时候发现 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 重启。




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


Crash your friend’s browser and restart Iphone with a link which has this script: #0day


//把带有下面这个脚本的链接发给你的朋友,能让你朋友的浏览器崩溃,而且让 Iphone 重启。




完整 HTML 代码如下:

<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 用 Safari 打开之后链接之后,手机注销重启了!…


思考

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


demo页面流量:




微博评论/讨论摘取

来自微博用户@十年磨一健的最佳评论:感谢……我的iPhone电源键坏掉了,一直不知道如何关机和重启,这个网址好啊。。。  

怀孕了...

好有趣...

好可怕...

整蛊不错

我已祸害了好多人(卖萌脸(づ ̄ 3 ̄)づ)

崩溃了

火狐假死10秒后弹窗提示脚本无响应可停止难道是history的栈溢出么?

可以可以,新姿势get√

JS是世界上最好的语言!

hist.pushState是干嘛用的?

电脑正在重启

不能只让我一个人中招

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多