打開一個正經網址,卻看到了不可描述的網站|地址欄欺詐解析
導語:打開門,也許是你早已心儀已久的一家購物網站,也可能是一些你無法預料的場景。
本文作者:雷鋒網宅客頻道專欄作者,李勤
瀏覽器的地址欄,是通往神秘賽博世界的一道門。
打開門,也許是你早已心儀已久的一家購物網站,也可能是一些你無法預料的場景:
或是閃著紅色小燈的髮廊線上版
或是各色骰子在飛舞旋轉,向你招手
或是一個簡單的拒絕:404
你恍若闖入了一個神奇的大觀園,不知道接下來的是一個人,還是一條狗,或者兩者都是。
這絕不是一次你想要的驚險刺激的冒險,你以為這是小朋友突然翻了一次牆么?
賽博世界,我想要知道我在哪,我去哪。
騰訊玄武實驗室技術專家徐少培說,在現代瀏覽器中,地址欄是唯一可靠的指示器。
如果地址欄上出現了問題,後續所見到的 Web 頁面,可信任的體系將全部崩塌。
雷鋒網(公眾號:雷鋒網)決定,先上個數據震撼一下你。
上周,Chrome 發布了最新的版本,在安全漏洞當中,其中有16個漏洞由外部人員提交。在這16個漏洞當中,中高危漏洞佔了12個,獲得了谷歌的漏洞獎勵。在這 12 個漏洞當中,有 3 個漏洞是地址欄上的漏洞,也就是說,Chrome瀏覽器作為目前業界公認的最安全的瀏覽器,其中地址欄上的安全漏洞佔比四分之一。
如何幫助人們在上網的時候做出安全決策?瀏覽器廠商絞盡腦汁。
於是,他們想出了一個辦法。
第一個指示燈:安全指示符
很久以前,瀏覽器廠商搞出了一個安全指示符,就像是一枚路標,告訴你前方是一片坦途還是沼澤叢林。
安全指示符琳琅滿目。你可能在地址欄看到的是一把綠色的小鎖,也可能是把灰色的大鎖,或是一個「地球」。
HTTP 和 HTTPS 又不同,一邊是白色符號,而另外一邊可能是綠色符號。
不同的符號究竟代表什麼?這些符號背後有何深意?你有沒有思考過這個問題?
不要傷心,2015年,谷歌曾就此採訪過1329人,尷尬的是,大部分人對於 HTTPS 這個指示符略有了解,看到有一個鎖,就知道可能是加密或者是安全的問題。對於HTTP這個標識符,包括一些專家可能都不太明白是什麼意思。
看到這裡你應該高興,看,你又比專家多懂了一點點。
當你點開這些各種各樣的小符號,其實又打開了一片新天地:
內有更多對當前頁面許可權的設置,包括自己的設置,以及這個網站是否安全等選項。
第二個指示燈:URL
在地址欄掛上安全指示符是安全手段之一,它是一枚路標,而統一資源定位符(URL)才是地址欄的真正主角,告訴你,你在哪,要去哪,相當於一張有定位的地圖。
基本URL包含模式(或稱協議)、伺服器名稱(或IP地址)、路徑和文件名,如「協議://授權/路徑?查詢」。完整的、帶有授權部分的普通統一資源標誌符語法如下:協議://用戶名:密碼@子域名.域名.頂級域名:埠號/目錄/文件名.文件後綴?參數=值#標誌。
所謂協議,是有很多的:
http——超文本傳輸協議資源
https——用安全套接字層傳送的超文本傳輸協議
ftp——文件傳輸協議
mailto——電子郵件地址
ldap——輕型目錄訪問協議搜索
file——當地電腦或網上分享的文件
news——Usenet新聞組
gopher——Gopher協議
telnet——Telnet協議
那麼,這個URL 有哪些層面可以被黑客改造,導致你去了一個意想不到的地方?也許,我們可以反推一下,不至於著了道。
作為一個連續三次挖掘了chrome 瀏覽器地址欄漏洞的老司機,徐少培對攻擊者可能偽造URL 的手段了如指掌:
1.這些協議在瀏覽器處理的時候都有可能出現問題。
2.多級域名時,瀏覽器地址可視為很小,可以把主機的覆蓋掉,而顯示前面偽裝的多級域名主機。
3.對於埠,目前默認的埠是空,或者是無符號16位。如果超過65535,比如說是1萬的瀏覽器埠,如果是ABCD埠會怎麼處理呢?
4.Passname,就是後面的目錄,有可能會偽造成主機。
5.#號後,瀏覽器格式在字元串時可能會出現問題,User Name有可能會偽造成主機。
「URL中的任何一個部分,都有可能成為觸發地址欄欺詐(URL Spoof)漏洞的攻擊向量。」徐少培說。
比如,上述URL,由一個四級域名構成,Passname的路徑偽造成了一個類域名的字元串。
在正確的地址欄中顯示,不管 URL 有多長,地址欄可視區有多長,都要把正確的源顯示出來,這個 URL 中正確的源是evil.com。在前5個顯示中,不管怎麼變化,都顯示了正確的源。對於有邏輯性問題的URL地址欄顯示,比如,上圖中最下面兩個也經常見到,Chrome 就犯過這種錯誤。
倒數第二個只顯示了 URL 最左邊的字元串,因為這個 URL 的地址欄長度有限,所以顯示不全,看到的是 Bank.com,偽造了一家銀行的網址。
倒數第一個只顯示了 URL 右邊的字元串,隱藏掉了真正的源,所以看到的又是一個假 URL。這種並沒有太多技術性操作,這是地址欄的自身邏輯性、顯示問題,造成了地址欄欺騙。
老司機的三次連勝:Chrome 地址欄之困
事不過三,但是連續 2016年6月、8月、10月 三個最新版本的 Chrome 地址欄漏洞被徐少培找到,Chrome 不僅要面帶笑容,還要給獎勵。
就喜歡看到「看不慣我又干不掉我」的情節。
第一個漏洞:3000美元獎金
從獎金規格可以看出,這是一個比較「完美」的漏洞,所謂的完美就是,哎喲,兩個悟空一模一樣,根本分不出來誰是誰。
「漏洞呈現的最後攻擊效果就是這樣的,當用戶點擊了一個鏈接,到達了Gmail,但是這個 Gmail 的URL是由攻擊者偽裝的,頁面也是由攻擊者偽裝的。當你登錄 Gmail ,輸入用戶名和密碼時,你的信息就被攻擊者獲取到了。」
輕而易舉,不帶一絲一毫的防備。
這個漏洞的原理如何實現?
當用戶點擊按鈕時,打開了一個頁面,寫下了一堆代碼,把這個代碼我專門抽出來,用灰色來標識,就是關鍵代碼。這個代碼是在當前頁面自身又打開了一個窗口,導航到了一個地址,黃色標識的 URL 就是導航地址。但是,這是一個畸形的URL,最後有兩個冒號,瀏覽器基本默認無法去解析,於是漏洞就觸發了。
黃色的畸形URL到底後續使瀏覽器發生了什麼?
瀏覽器的導航機制是這樣的,它先判斷一下是不是允許跳轉到一個頁面,當時Chrome碰到這個畸形的URL的時候,它允許去載入,這就是錯誤的開始。
首先,到了畸形URL的位置的時,當用A標籤去打開一個新頁面,載入了一個無效地址,這個過程當中瀏覽器沒有任何判斷機制和處理措施。
當你同意載入,第二步就開始載入了。當載入了這個畸形URL時,因為載入的是無效地址,根本沒有辦法去訪問。於是,地址欄就處於一個掛載的狀態。
載入完以後開始反饋數據,瀏覽器載入的流程開始返回。因為載入的是一個無效的地址,所以什麼也沒法返回,只能返回一個空頁面,也就是一個空域。但是,此時Chrome掛起狀態還停留著,而且還要把掛起的這個地址作為最後的提交地址顯現在地址欄中。
頁面載入完成,結束,停留在了偽造的頁面中。而且,兩個冒號會被完全隱藏掉。
這就是犯罪後還順便清理了犯罪現場,造成什麼都沒發生的假象!
第二個漏洞:谷歌忽視了邊緣協議
「在這個漏洞發現後兩個月,我又連續尋找新的漏洞。在被我找到漏洞的53版本修復成54版本上,我在翻協議時發現,針對不同的協議,瀏覽器有不同處理。」徐少培說。
這個協議是發生在 Blob 協議上,Blob 協議是一個二進位文件的容器,Blob URL允許外部應用程序安全訪問內存中二進位的文件,也就是說,對於內存中二進位文件的Blog引用。
按照安全同源策略,你不可能直接打開一個你不能控制域的 Blob 的URL,通過這個頁面,從視覺感官上是成功打開了谷歌域的Blog的URL,但這其實是偽造的。
如何做到的?
當你點擊這個按鈕之後,其實首先打開了一個攻擊者可控制域的 Blob 的URL,就是圖片中黃色關鍵核心代碼。
500毫秒後,在這個頁面上寫入偽造內容。黃色的關鍵代碼中,@後面的域才是攻擊者的域,就是可以控制的,而前面那些都是偽造的。
首先,偽造了一個谷歌字元串,進了大量的空白字元。瀏覽器遇到這樣的字元串、URL。Chrome會怎麼處理?Chrome其實犯了一個邏輯上非常嚴重的錯誤,一直對 HTTPS、HTTP做了很多限制,而可能對邊緣化的協議沒有太注意。
其實,它渲染了用戶名和密碼的部分,就是@符號前面的部分,按理應該不會渲染。即解析,但是在 UI 上不能顯示出來。
因為一個URL的用戶名和密碼一旦被渲染,極有可能被用戶認為是這個URL的主機。
比如,列舉的這個鏈接,如果直接全被渲染,@前面的字元串就有可能被認為是這個主機,也就是偽造了這個域名。
在主機前面加入了偽造字元串後,又加入了大量的空白符號,在現在的瀏覽器當中已經不允許這麼做了,大量的空白被解析會被真正的主機的域名覆蓋,就衝到後面去了。
Chrome對於Blog協議,按理應該像對待 HTTP 協議這樣解析,安全應該做到位。
第三個漏洞:反常規點擊,用另一隻手吃飯試試?
人們在導航到一個新的網站時,可能都用左鍵去點擊。但你有沒有想過,比如點擊右鍵,再點擊從新窗口打開這種方式?
真是出其不意的鬼畜!
現實中很少人這麼做,但是確實能打開一個新網站,這個漏洞就是通過這種方式去觸發了URL欺騙的漏洞。
最後,欺騙的效果就是偽造了谷歌的域,頁面內容同樣可以被改寫,這個漏洞因為觸發起來可能需要的一個小交互,所以當時只給了500美元的獎勵。
徐少培解釋完最後一個漏洞,說起500美元,一副輕描淡寫的樣子。
剩下三次被「擊中」的谷歌chrome哭暈在廁所。
雷鋒網註:本文部分資料來源於騰訊玄武實驗室徐少培在中國網路安全大會(NSC2017)「大師講堂」上的演講,本屆中國網路安全大會由賽可達實驗室、國家計算機病毒應急處理中心、國家網路與信息系統安全產品質量監督檢驗中心、首都創新大聯盟共同舉辦。
雷鋒網原創文章,網站轉載請至雷鋒網官網申請授權。歡迎熱情討論,轉發分享~
※不均衡數據怎麼破?對付它的七種武器!
※通用自動駕駛路測車舊金山發生剮蹭,對象號稱無人車最大敵手
※谷歌挖腳蘋果核心晶元架構師,要為Pixel手機自研晶元
※推多激光雷達耦合:是速騰聚創一小步,也是自動駕駛民主化一大步
TAG:雷鋒網 |
※「不可描述網站」里的段子手們,給你們跪了!
※盤點《西遊記》中那些不正經的兵器,一個比一個不可描述
※小伙外出攝影,卻拍到一個不可描述的畫面!網友:這狗糧我不吃!
※一個人做不可描述的事,了解一下?
※多年前的一則廣告,差點毀了楊穎,網友:現在看還是有點不可描述
※魔道祖師:看一下眾道友入坑的經歷,你就知道是怎樣的不可描述了
※除了不可描述還有哪些哄男朋友的套路
※凌晨4點男子闖入關曉彤的房間,竟然看到這樣不可描述的一幕,網友:鹿晗?
※下班回到家,看見這不可描述的畫面,貓咪:不知道要敲門嗎?
※航空黑幕曝光!看完這些不可描述的畫面,整個人都不好了……
※這些不可描述被撞見的尷尬瞬間,承包了我整晚的笑點
※結婚當天新娘們都是怎麼度過的?網友:做一些不可描述的事
※劉芸表情難以描述,魚尾紋可夾好幾隻蒼蠅,網友:送我都要想一晚
※將風油精塗在了不可描述的地方,沒想到結果竟然會這樣……
※神奇!戴上這個眼鏡,能看到不可描述的畫面!
※五一在家玩手機,刷出了一個不可描述的東西
※那些年的紅毯假摔,三點全露都不算什麼,她掉出「不可描述」的東西
※兩個網友給我描述的故事,你是一個無神論者嗎?
※老鐵來一段嚶嚶嚶?玩家用一圖描述快手收購A站,網友:太貼切了
※景甜因一件衣服「人設崩塌」,還讓網友直呼「不可描述」受不了?