日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android“应用克隆”漏洞分析

發(fā)布時(shí)間:2025/3/15 Android 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android“应用克隆”漏洞分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、這個(gè)漏洞的特征

二、這個(gè)漏洞的攻擊流程

三、這個(gè)漏洞的攻擊原理

  • 該漏洞主要利用了Android系統(tǒng)WebView控件的同源策略漏洞來進(jìn)行攻擊,Android應(yīng)用內(nèi)部分可導(dǎo)出的Activity組件中,WebView允許通過file url對(duì)http域進(jìn)行訪問,并且并未對(duì)file域的路徑進(jìn)行嚴(yán)格校驗(yàn)所導(dǎo)致的。

  • 該漏洞會(huì)打破Android應(yīng)用的沙箱隔離機(jī)制,即A應(yīng)用可以通過B應(yīng)用導(dǎo)出的Activity讓B應(yīng)用加載一個(gè)惡意file協(xié)議的url,從而獲取B應(yīng)用的內(nèi)部私有文件。

當(dāng)APP出現(xiàn)以下兩種情況時(shí),即受該漏洞的影響:?
1.WebView中setAllowFileAccessFromFileURLs 或****setAllowUniversalAccessFromFileURLsAPI配置為true;?
2.WebView可以直接被外部調(diào)用,并能夠加載外部可控的HTML文件。

四、這個(gè)漏洞的初步修復(fù)建議

  • file域訪問為非功能需求時(shí),手動(dòng)在Activity中配置setAllowFileAccessFromFileURLs或setAllowUniversalAccessFromFileURLs兩個(gè)API為false。(Android4.1版本之前這兩個(gè)API默認(rèn)是true,需要顯式設(shè)置為false)

  • 若需要開啟file域訪問,則設(shè)置file路徑的白名單,嚴(yán)格控制file域的訪問范圍,具體如下:?
    (1)固定不變的HTML文件可以放在assets或res目錄下,file:///android_asset和file:///android_res 在不開啟API的情況下也可以訪問;?
    (2)可能會(huì)更新的HTML文件放在/data/data/(app) 目錄下,避免被第三方替換或修改;?
    (3)對(duì)file域請(qǐng)求做白名單限制時(shí),需要對(duì)“../../”特殊情況進(jìn)行處理,避免白名單被繞過。

  • 避免App內(nèi)部的WebView被不信任的第三方調(diào)用。排查內(nèi)置WebView的Activity是否被導(dǎo)出、必須導(dǎo)出的Activity是否會(huì)通過參數(shù)傳遞調(diào)起內(nèi)置的WebView等。

  • 建議進(jìn)一步對(duì)APP目錄下的敏感數(shù)據(jù)進(jìn)行保護(hù)。客戶端APP應(yīng)用設(shè)備相關(guān)信息(如IMEI、IMSI、Android_id等)作為密鑰對(duì)敏感數(shù)據(jù)進(jìn)行加密。使攻擊者難以利用相關(guān)漏洞獲得敏感信息。
  • 五、簡(jiǎn)單復(fù)現(xiàn)及處理

  • 將一下內(nèi)容保存為html文件

    <!DOCTYPE> <html> <head><meta charset="utf-8" /><title>webview</title><style></style><script type="text/javascript"><!--alert("1");-->function loadData(){var arm="file:///mnt/sdcard/abc.txt";var xmlhttp;if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();}xmlhttp.onreadystatechange = function(){if (xmlhttp.readyState == 4) {alert("3");alert(xmlhttp.responseText);}}xmlhttp.open("GET",arm);xmlhttp.send(null);}<!--alert("2");--></script> </head><body><input type="button" name="btn" value="觸發(fā)漏洞" onclick="loadData()" /> </body>

  • 將該文件放到assets目錄下,在手機(jī)sd卡目錄下,新建一個(gè)abc.txt,鍵入部分文字。

  • 使用webview加載該文件,點(diǎn)擊觸發(fā)漏洞按鈕,如果彈出內(nèi)容為空,則說明加載不到(在該手機(jī)上無此漏洞);如果彈出了文件中的內(nèi)容,則說明在該手機(jī)上需要進(jìn)行處理
  • 如果存在該漏洞,并且app不需要進(jìn)行文件域操作,那么,設(shè)置為false即可。

    WebSettings wSet = wView.getSettings();wSet.setAllowFileAccessFromFileURLs(false);wSet.setAllowUniversalAccessFromFileURLs(false);
  • 如果因?yàn)樾枨笮枰?#xff0c;那么我們可以在該方法中攔截url,對(duì)非法或者不符合預(yù)期的url進(jìn)行攔截,不讓其加載。

    @Overridepublic void onLoadResource(WebView view, String url) {super.onLoadResource(view, url);}
  • y原文地址: http://blog.csdn.net/xwh_1230/article/details/79045251

    總結(jié)

    以上是生活随笔為你收集整理的Android“应用克隆”漏洞分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。