當前位置:
首頁 > 新聞 > iOS漏洞——Web View XSS

iOS漏洞——Web View XSS

本文介紹一個簡單的,但是潛在危險性特別大、而且在iOS app中經常出現的安全漏洞。

該漏洞非常簡單,但是常常被誤解,當開發者在代碼中是設置webView時,經常會看到:

[webView loadHTMLString:someHTMLstring baseURL:[NSURL URLWithString:@""]]

許多開發者都認為設置baseURL為@」」,表示是安全的,因為baseurl被指定為空字元串,攻擊者也不能載入請求到隨機的惡意網站。但事實上不是這樣的。

當baseURL被設置為空字元串時,攻擊者可以繞過SOP保護訪問APP的文件系統(使用file:// url方案)和任何外部網站。

另一個需要注意的方法是loadData:MIMEType:textEncodingName:baseURL。

錯誤配置可以以多種方式利用。最常見的就是文件共享,用戶可以在web視圖中打開文件。比如一個簡單的XSS payload:

這個簡單的payload可以打開手機的/etc/passwd文件,然後發送其中的內容到攻擊者伺服器。

研究人員將其保存為.html文件,並於iCloud進行同步,然後再通過蘋果的Files APP在APP內分享。

然後,當用戶打開該文件時:

研究人員就接收到了用戶的etc/passwd文件。

其他潛在的利用方法有:

·APP內打開URL/Web瀏覽:攻擊者可以發送給受害者一個惡意URL,當用戶點擊時,就可以在APP的web視圖中打開鏈接。

·URL scheme濫用:攻擊者可以通過郵件或iMessage等外部通信方式發送一個惡意URL。如果打開鏈接的URL scheme在webView中,就可以進行利用。

如何應對?

應對該漏洞的最簡單的辦法就是將baseURL參數設置為about:blank而不是空字元串。比如:

[webView loadHTMLString:someHTMLstring baseURL:[NSURL URLWithString:@"about:blank"]]

現在webView已經從手機的文件系統中沙箱化了,攻擊者可能可以進行彈窗,但是不能竊取數據或與惡意伺服器進行通信。如果用戶從文件系統中載入內嵌圖像,該方案可能會幹預APP的這一功能。

如果開發者選擇使用新的WKWebView類,而不是老版本的UIWebView,那麼這類攻擊發生的可能性就會小很多。因為WKWebView增強了安全性,默認情況下不允許對本地文件系統進行AJAX請求,所以前面描述的攻擊就都不能實現了。而且WKWebView還有一個開啟/關閉JavaScript執行的新功能。


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

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


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

如何從iCloud中提取蘋果的「Apple Health」數據
Google Monorail問題跟蹤器中發現了XS搜索漏洞

TAG:嘶吼RoarTalk |