當前位置:
首頁 > 新聞 > 小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP

小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP

小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP



Microsoft Edge全新的瀏覽器讓人眼前一亮,而閱讀模式可以說是其中的亮點之一。不過今天我們並不是要評價它的這個功能,而是要對運行在Edge瀏覽器 閱讀模式下的各種偽協議運行機制進行一個詳細的解剖。


要打開閱讀模式,可以進入Edge瀏覽器,點擊像一本書一樣的圖標,即可進入閱讀模式:

小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP


使用閱讀模式,閱讀效果會更好一些:

小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP



但是,閱讀模式頁面下的真實地址是什麼呢?打開開發者工具(F12)並在控制台中輸入 location.href 。從下圖可以很明顯的看到,此時,Edge瀏覽器 在 URL 前面添加了 read: 偽協議:

小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP



以下我所描述的這些漏洞適用於所有的Edge版本,但本文所提到的PoC則是專門針對Edge瀏覽器15.0以後的版本而構建的。 如果有人想要15.0以前的舊版本上執行這個POC的話,必須進行相應的修改,以確保在閱讀模式下呈現出來。


實際上閱讀模式下的網站是一種內部資源


閱讀模式下的網頁並不是常規閱讀模式下的那個網站,如果你按Ctrl+U快捷鍵來看看源代碼的話,你會驚奇的發現,你根本找不到原始頁面的任何蹤跡,實際上閱讀模式下的網站是一個託管在文件系統中的內部資源:

C:WindowsSystemAppsMicrosoft.MicrosoftEdge_8wekyb3d8bbweAssetsReadingView


Edge瀏覽器會解析原始網頁的內容,刪除iframe / scripts及其他html標籤,最後將其呈現在內部閱讀視圖html中託管的iframe中。不過所有這些操作都發生在後台,用戶根本就一無所知,當用戶切換到閱讀模式時,他們會以為這些內容的瀏覽地址還是停留在剛剛的網站上,因為他們並沒有對網址進行過改動。


但如果在Edge瀏覽器的原始URL之前設置「read:」協議,然後再在閱讀模式下呈現網頁的話,我還可以利用腳本來執行嗎? 我可以自動在閱讀模式下隨意載入網址嗎?


隨意強制一個網站進入閱讀模式


我們來看看是否可以通過前置read:協議來強制把任意的URL從正常閱讀模式切換為閱讀模式:


location.href = "read:http://www.cracking.com.ar"; // prepending read: does the trick


所以我總結的第一個漏洞便是:當腳本或 http 重定向發生時,Edge並不會更新地址欄:

小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP



尋找一個重定向

以上的操作意味著我們可以利用重定向這個機會把閱讀模式下的網站偽裝成任意網站,甚至可以對所有重定向到我們控制之下的網站進行偽裝,反正用戶在閱讀模式下的視覺呈現效果不會發生什麼變化。 例如,如果我可以把google.com重定向為一個惡意的頁面,但用戶還會認為他們的閱讀內容來自谷歌,實際上它是來自evil.com。

小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP



在閱讀模式下重定向

小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP



從上圖可以看出,雖然偽裝的網頁非常成功,但別忘了,我們是在閱讀模式下完成的這些。這也就意味著我還沒有完全控制頁面的閱讀形式的呈現外觀。因為在呈現頁面之前,Edge瀏覽器還會刪除大量的HTML內容。例如,iframe 和 script 都會被刪除,並且JavaScript鏈接的進程也被停止了。那麼,我該如何自定義這個頁面並刪掉後面的淡黃色背景呢?又怎麼在其中運行腳本呢?


在閱讀模式下運行腳本


處於閱讀模式下,Edge瀏覽器會儘力把所有呈現出的內容都保持成靜態的,即不允許任何腳本,連iframe等也會被刪除。也就是說,閱讀模式下的內容最終要像一本書那樣靜靜的呈現出來,而不是向網頁那樣動態變化。下面我就將試著處理保持這種靜態閱讀模式的一些障礙。


我先手動測試了幾個html標籤,比如iframe / script / meta,但是它們都會被刪除。然後,我嘗試了一下object/html標籤,令我驚訝的是,這兩個標籤竟可以正常運行,看來事情比我想像的要更容易一些,object/html 標籤類似 iframe :,它們都是可以運行 script 的 html 容器 。

所以我總結的第二個漏洞便是:當在閱讀模式下呈現頁面時, Edge瀏覽器並不會刪除object/html標籤。

小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP



假設我要將網站的背景顏色便為白色或使用其它更有說服力的攻擊手段,就需要繞過SOP或設置網站頂部的 URL,而不更改地址欄。下面,就讓我來嘗試SOP 繞過吧!


瀏覽器有一個很重要的概念——同源策略(Same-Origin Policy,SOP)。所謂同源是指,域名,協議,埠相同。不同源的客戶端腳本(javascript、ActionScript)在沒明確授權的情況下,不能讀寫對方的資源。


簡單的來說,瀏覽器允許包含在頁面A的腳本訪問第二個頁面B的數據資源,這一切是建立在A和B頁面是同源的基礎上。


如果Web世界沒有同源策略,當你登錄嘶吼的官網並打開另一個站點時,這個站點上的JavaScript可以跨域讀取你的嘶吼賬號數據,這樣整個Web世界就無隱私可言了。


尋求父頁面的相匹配


不過事情沒那麼簡單,因為Edge瀏覽器不允許我利用data uri訪問任何其他文檔。所有瀏覽器都把data uris當作不同於其創建者的獨立源進行處理,但在Edge瀏覽器上,這個限制卻很容易被繞過。頁面載入後,僅僅使用一個self-document.write就足以匹配父頁面的域了。


所以我總結的第三個漏洞便是:在data: uris中,可以通過document.write設置源,使其與其父頁面相匹配:

小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP


小心閱讀模式下的貓膩——看看我如何在Edge的閱讀模式下繞過SOP



本文的技術手段如果要總結成一句話,那就是利用Edge瀏覽器的閱讀模式(read: 偽協議)實現地址欄欺騙,然後進一步利用 實現完整的頁面偽造。


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

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


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

通過APC實現Dll注入——繞過Sysmon監控
深入了解惡意軟體如何濫用TeamViewer?
俄羅斯黑客暗網出售勒索軟體服務,價格低廉人人可用
如何使用加密的Payload來識別並利用SQL注入漏洞?

TAG:嘶吼RoarTalk |

您可能感興趣

看書就像看美劇?Serial Box 向讀者提供了新奇的閱讀體驗
三言兩魚:看小小說也能像 iMessage 那樣,這款小程序解鎖了一種電子閱讀的新姿勢 | 創業
掌閱iReader Light全球首發!更輕、更薄、更貼心!帶你看看這款走心的閱讀器!
kindle?掌閱?從十一游看閱讀器未來發展趨勢
用過kindle之後,再用掌閱電子書閱讀器的別樣體驗
買了Kindle這個閱讀神器,你後悔了嗎?
比kindle更出色,這款電子書閱讀器最近火了!
如何使用Safari的閱讀列表Reading List功能,讓閱讀變得更自由
把閱讀器做成這樣,索尼你考慮過Kindle的感受嗎?!
掌閱iReader Light青春版體驗 閱讀從未如此輕便
怎麼讓還不太會說話的小娃開始接觸critical thinking?我在繪本閱讀中找到了方法……
世界讀書日,最In Style,是閱讀Style
重新定義輕閱讀,掌閱iReader Light正式發布
QQ 推出了首款電子閱讀器,比 Kindle 貴,會不會比 Kindle 好?
實現一個Android電子書閱讀APP
亞馬遜Kindle帶你重拾美好的閱讀體驗
只有1%電子閱讀者的城市,如何上線一款新的Kindle?
QQ 閱讀推出電子書閱讀器,你怎麼看?
史上最輕的電子閱讀器 掌閱iReader Light上手體驗