當前位置:
首頁 > 新聞 > Safari瀏覽器bug可引發XSS

Safari瀏覽器bug可引發XSS

研究人員發現一個Safari瀏覽器的bug,利用該bug可以繞過瀏覽器的過濾器,並進行XSS。之前也有研究人員發現過該漏洞,因此漏洞並不是第一次出現。

先看一個研究人員偶然發現腳本文件:

該文件的目的是重定向到手機APP,其中有重定向參數,檢查協議是否在黑名單中,如果不在黑名單中就重定向。為了成功利用該漏洞,需要創建一個可以以Javascript執行的鏈接,因為協議中沒有javascript。根據瀏覽器說明文件,這是不可能的。但與其他軟體一樣,瀏覽器並不會完全遵循說明文件。

研究人員首先關注的是重定向部分。因為使用了.toLowerCase(),那麼是否有可能將一些Unicode字元串在進行.toLowerCase()轉化時變成其他字元呢?一個協議被分成兩行是否可以正常運行呢?

重定向

研究人員選擇分析重定向而不是過濾器。一般來說域名和URL-handling可能會存在漏洞,所以研究開始了分析之旅:

打開console,寫一個函數來模擬繞過。

`//`在Javaccript中表示注釋,`%0a`是URL編碼的換行來繞過注釋。

幸運的是研究人員竟然發現成功了。因為黑名單中沒有指定空協議,因此可以繞過過濾器。

Final payload是:

`?redirect=javascript://%0aalert(document.domain)`。

該漏洞被報告給了許多使用SaaS服務的站點,許多使用該服務的子域名都受該漏洞的影響。許多廠商都了解到了該漏洞並進行了補丁修復。

引發新漏洞的補丁

因為SaaS廠商迅速提供了安全補丁,也就是說所有受影響的網站現在都安全了。但研究人員發現該補丁會破壞頁面原有的功能,因此研究人員猜測這是一個臨時補丁。

幾個月後,vpnMentor的write-up顯示臨時補丁被另一個更新的補丁代替,但這會導致新的XSS漏洞。

正則表達式

研究人員發現原來的payload還可以正常運行。第二個漏洞的補丁會導致第三個漏洞的出現,同樣的payload還可以正常起作用。但這並不是一個純DOM XSS,因為並不會在JS上讀取URL參數,而是在服務端反射。

最新解決方案

修復第三個漏洞的解決方案就是在黑名單中添加:』『 and 『: 』。研究人員認為應該沒有什麼可以繞過這個黑名單的。

// App redirects only.

if ([ "javascript:", "vbscript:", "http:", "https:", "data:", "ftp:", ":", " " ].indexOf(protocol)

window.top.location = validate("[injection]");

}

該函數需要支持不同的自定義APP協議,使其不可能使用白名單,而只能使用黑名單。

總結

黑名單從來都不是一個很好的解決方案。在進行漏洞修復時需要記錄漏洞出現的原因以預防漏洞再次出現。協議bug相關信息半年前就通知了蘋果公司,但Mac電腦和手機設備的Safari最新版本仍存在該漏洞。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

千面萬化的Android特洛伊木馬GPlayed
NUUO網路視頻攝錄機Peekaboo漏洞:CVE-2018-1149、CVE-2018-1150

TAG:嘶吼RoarTalk |