成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Android安全之Intent Scheme Url攻擊

pepperwang / 2302人閱讀

摘要:下面是各大瀏覽器對(duì)的支持情況攻擊場(chǎng)景主要由兩種攻擊場(chǎng)景。在年東京的上比賽上,次攻擊方式被應(yīng)用于攻陷三星。有需求的團(tuán)隊(duì)可以登錄御安全官網(wǎng)試用。

0X01?前言
Intent scheme url是一種用于在web頁面中啟動(dòng)終端app activity的特殊URL,在針對(duì)intent scheme URL攻擊大爆發(fā)之前,很多android的瀏覽器都支持intent scheme url。
Intent scheme url的引入雖然帶來了一定的便捷性,但從另外一方面看,給惡意攻擊頁面通過intent-based攻擊終端上已安裝應(yīng)用提供了便利,盡管瀏覽器app已經(jīng)采取了一定的安全策略來減少這一類風(fēng)險(xiǎn),但顯然是不夠的。
2014年3月,一篇關(guān)于intent scheme url攻擊的文章:
Whitepaper – Attacking Android browsers via intent scheme URLs
詳細(xì)介紹了相關(guān)的攻擊手法,之后國(guó)內(nèi)的漏洞收集平臺(tái)上開始被這一類型漏洞刷屏。
??
0X02 Intent scheme url解析
一個(gè)intent scheme url的使用示例:

如果瀏覽器支持intent scheme url,在加載了改web頁面后,將根據(jù)url生成一個(gè)intent,并嘗試通過intent打來指定的activity。此過程中瀏覽器的需要完成的工作可以拆分為3步:
?
Step1:
根據(jù)url生成對(duì)應(yīng)的intent object,此過程通過以下代碼完成:
Intent intent = Intent.parseUri(url);
intent scheme url的內(nèi)容可以根據(jù)一下語法規(guī)則設(shè)置的比較完善:
intent:

   HOST/URI-path // Optional host
   #Intent;
      package=[string];
      action=[string];
      category=[string];
      component=[string];
      scheme=[string];
   end;

?
Step2:
intent過濾,安全起見,很多瀏覽器對(duì)step1中的intent object進(jìn)行過濾,以抵御intent-based攻擊,不用的瀏覽器,過濾規(guī)則各不相同。
?
Step3:
組件調(diào)用,最后一步就是使用step2過濾后的intent調(diào)用指定的組件,瀏覽器中一般使用Context#startActivityIfNeeded()?或者?Context#startActivity()方法實(shí)現(xiàn)。
下面是各大瀏覽器對(duì)Intent scheme URL的支持情況?:

0X03攻擊場(chǎng)景?
主要由兩種攻擊場(chǎng)景。
類型1:瀏覽器攻擊
因?yàn)閕ntent是瀏覽器依據(jù)url生成并以瀏覽器自己的身份發(fā)送的,因此攻擊者惡意頁面中的intent scheme url不僅可以調(diào)起導(dǎo)出組件,還可以調(diào)起私有組件。
?
類型2:終端上安裝的任意APP
intent-based攻擊一般是通過終端上安裝的惡意app來實(shí)現(xiàn)的,但通過瀏覽器加載包含特定intent scheme url的惡意頁面,可以實(shí)現(xiàn)對(duì)終端上安裝的任意app遠(yuǎn)程intent-based攻擊的效果。在2013年東京的Pwn2Own上比賽上,次攻擊方式被應(yīng)用于攻陷三星Samsung Galaxy S4。

0X04?攻擊案例
以下介紹三個(gè)瀏覽器的intent scheme url攻擊案例,攻擊主要源于這些瀏覽器在step2(也就是intent過濾過程)中存在缺陷。
?
Opera mobile for Android cookie theft
Opera瀏覽器中缺少intent過濾步驟,一次可以通過惡意頁面中的intent scheme url調(diào)起瀏覽器的任意activity,包括私有的activity,通過如下攻擊代碼可以獲取到Opera瀏覽器的cookie:

"com.admarvel.android.ads.AdMarvelActivity"是Opera瀏覽器的私有組件,"url=file:///data/data/com.opera.browser/app_opera/cookies"是Opera瀏覽器cookie文件的存放位置。
?
Chrome for Android UXSS (Universal XSS)
Chrome的UXSS漏洞利用相對(duì)復(fù)雜,這里先介紹一下Intent Selector。Intent Selector機(jī)制提供一種main intent不匹配的情況下可以設(shè)置替補(bǔ)的方案。如下的intent scheme url:

其中“SEL”是selector intent的標(biāo)識(shí)。
在chrome中包含以下代碼:
1:Intent intent = Intent.parseUri(uri);
2:intent.addCategory("android.intent.category.BROWSABLE");
3:intent.setComponent(null);
4:context.startActivityIfNeeded(intent, -1);
第二行添加了BROWSABLE category(目標(biāo)Activity允許本身通過 Web 瀏覽器啟動(dòng),以顯示鏈接引用的數(shù)據(jù),以此過濾/防止一些不該被調(diào)起的組件被調(diào)起),第三行將組建設(shè)置為null,用以抵御intent-based攻擊,但如果使用selector intent可以完美的bypass以上限制。
以下是android chrome上的一個(gè)UXSS攻擊的POC:

?
Old stock browser cookie theft
Android stock browser (com.android.browser)的問題類似于android chrome,同樣是在step2中對(duì)intent的過濾問題,最終攻擊者可以盜取瀏覽器的cookie。此漏洞可能只存在于Android 4.3以下的設(shè)備,之后的版本中不一定預(yù)裝stock browser。
?
?
0X05?總結(jié)
有效抵御intent scheme url攻擊的方法主要是在step2中對(duì)intent做嚴(yán)格的安全限制:

// convert intent scheme URL to intent object
Intent intent = Intent.parseUri(uri);
// forbid launching activities without BROWSABLE category
intent.addCategory("android.intent.category.BROWSABLE");
// forbid explicit call
intent.setComponent(null);
// forbid intent with selector intent
intent.setSelector(null);
 // start the activity by the intent
context.startActivityIfNeeded(intent, -1);

?
?
0X06?參考
http://www.mbsd.jp/Whitepaper...
??
騰訊御安全為開發(fā)者推出了安全保護(hù)服務(wù),其中包括漏洞掃描、應(yīng)用加固、SO加固等,能夠幫助企業(yè)軟件發(fā)現(xiàn)潛在漏洞風(fēng)險(xiǎn)、防逆向、防篡改、防二次打包。有需求的團(tuán)隊(duì)可以登錄御安全官網(wǎng)試用。
?
(騰訊御安全原創(chuàng),轉(zhuǎn)載請(qǐng)注明來源)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/66331.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<