曲速未來:XSS使用Safari中的錯誤以及為什么說黑名單是愚蠢的區塊鏈
曲速未來:研究人員發現一個Safari瀏覽器的bug,攻擊者可以利用該漏洞來繞過過濾器,從而發動相應的XSS攻擊。
Safari(蘋果公司研發的網絡瀏覽器):Safari是蘋果計算機的操作系統Mac OS中的瀏覽器,使用了KDE的KHTML作為瀏覽器的運算核心。Safari 是一款瀏覽器、一個平臺,也是對銳意創新的公開邀請。無論在 Mac、PC 或 iPod touch 上運行,Safari 都可提供極致愉悅的網絡體驗方式,更不斷地改寫瀏覽器的定義。
區塊鏈安全咨詢公司 曲速未來 消息:研究人員發現一個Safari瀏覽器的bug,利用該bug可以繞過瀏覽器的過濾器,并進行XSS。之前也有研究人員發現過該漏洞,因此漏洞并不是第一次出現。
這是一個研究人員偶然發現腳本文件:
該頁面的目的似乎是重定向到移動應用程序。它采用redirect-parameter,根據黑名單檢查協議,如果沒有找到重定向到它。
為了利用這個,就需要創建一個鏈接,它將作為Javascript執行,而它的協議不是'javascript'。跟據所知的,根據瀏覽器規格,這是不可能的。但是,與所有軟件一樣,瀏覽器并不總是遵循規范。
研究人員首先專注于重定向部分。有一個.toLowerCase()使用,是否可以使用一些unicode字符,當它變成小寫時變成另一個?協議可以通過換行符進行拆分但仍然可以正常工作嗎?
將焦點轉移到重定向部分
研究人員選擇專注于重定向部分而不是過濾器。
然后開始使用Safari。一般來說域名和URL-handling可能會存在漏洞,所以研究開始了分析之旅。
打開控制臺,編寫了一個快速功能來模擬旁路:
`//`是Javaccript中的單行注釋,`%0a`是一個URL編碼的換行符,用于轉義注釋。
幸運的是研究人員竟然發現成功了。因為黑名單中沒有指定空協議,因此可以繞過過濾器。
最終的有效負載是:`?redirect=javascript:// alert(document.domain)`。
該漏洞被報告給了許多使用SaaS服務的站點,通過將其中一個子域指向服務,它們本身就受其影響。其中一個受影響的站點聯系了SaaS供應商,該漏洞很快就被上游修補了。Apple也聯系了這個bug。通常情況下,一切都會結束并被遺忘,但這次不是。
引發新漏洞的補丁
這很快被SaaS供應商修補,這意味著所有受影響的站點現在都是安全的了。但是,修復似乎打破了頁面的功能,研究人員認為這是一個臨時修復,所以繼續訪問該頁面,偶爾等待一個永久的解決方案。
幾個月之后,研究人員收到了一個鏈接到vpnMentor的文章,其中顯示臨時修復已被更永久的修復取代。然而,這又導致了新的XSS漏洞,這次是由vpnMentor發現的。
正則表達式
研究人員發現原來的payload還可以正常運行。第二個漏洞的補丁會導致第三個漏洞的出現,同樣的payload還可以正常起作用。但這并不是一個純DOM XSS,因為并不會在JS上讀取URL參數,而是在服務端反射。
最新的解決方案
修復第三個漏洞的解決方案現在是將''和':'添加到黑名單中。研究人員想不出任何繞過這個,但也許有一些?
很可能這個功能需要支持許多不同的自定義應用程序協議,這使得使用白名單而不是黑名單或多或少是不可能的,否則強烈建議采用這種方法。
總結
區塊鏈安全咨詢公司 曲速未來 提醒:凡事做好筆記,俗話說的好,好記性不如爛筆頭。黑名單從來都不是一個很好的解決方案。在進行漏洞修復時需要記錄第一次漏洞出現的原因以預防漏洞再次出現。蘋果公司在半年前最初被發現時被告知了協議錯誤。但是,在Mac和移動設備上最新版本的Safari瀏覽器中,該漏洞仍然存在。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。