這十二行代碼是如何讓瀏覽器爆炸的?

jopen 9年前發布 | 14K 次閱讀

這十二行代碼是如何讓瀏覽器爆炸的?

起因

今天刷推特的時候發現 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=;i<1000000;i++)
{
    total= total+i.toString ();
    history.pushState (,,total);
}</script> </body> </html>

demo:(溫馨提示:請保存瀏覽器其它窗口的編輯任務)

www.0xroot.cn/demo.html (點擊一下,又不會懷孕!)

接來下會發生什么?

點開以后,我的狀態是這樣的:

這十二行代碼是如何讓瀏覽器爆炸的?

如果你是 PC 端用戶,點開鏈接以后,電腦 CPU 內存極有可能一路狂飆直至瀏覽器崩潰卡死!

如果你是移動端(安卓、iPhone)用戶,點開鏈接以后你的瀏覽器會閃退!在微博、微信客戶端點開鏈接同樣會閃退。iPhone 用 Safari 打開之后鏈接之后,手機注銷重啟了!…

思考

這是 Bug 還是 0day?為什么會有這一現象?如何實現的?

作者/雪碧,轉載須注明來自 FreeBuf 黑客與極客(FreeBuf.COM)

來自: www.freebuf.com

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!