APP安全評(píng)測(cè)指導(dǎo)手冊(cè)V1_第1頁(yè)
APP安全評(píng)測(cè)指導(dǎo)手冊(cè)V1_第2頁(yè)
APP安全評(píng)測(cè)指導(dǎo)手冊(cè)V1_第3頁(yè)
APP安全評(píng)測(cè)指導(dǎo)手冊(cè)V1_第4頁(yè)
APP安全評(píng)測(cè)指導(dǎo)手冊(cè)V1_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

資料小超市資料小超市資料小超市資料小超市精品文檔APP安全評(píng)測(cè)指導(dǎo)手冊(cè)目錄一、敏感數(shù)據(jù)暴露 4(一) 明文傳輸用戶名、密碼和驗(yàn)證碼等敏感信息 4(二) 不安全的本地存儲(chǔ) 6(三) 泄漏后臺(tái)服務(wù)器地址,導(dǎo)致服務(wù)器可控 7(四) 邊信道信息泄漏 7二、鑒權(quán)機(jī)制缺陷 9(五) 未使用有效的token機(jī)制,導(dǎo)致可以繞過(guò)鑒權(quán) 9(六) 傳輸數(shù)據(jù)可修改,造成越權(quán)訪問(wèn) 10(七) 登錄設(shè)計(jì)缺陷,存在被暴力破解風(fēng)險(xiǎn) 11(八) 利用業(yè)務(wù)邏輯缺陷制作短信炸彈 14(九) 失效的會(huì)話管理(cookie不過(guò)期) 16三、釣魚(yú)劫持風(fēng)險(xiǎn) 16(十) 關(guān)鍵頁(yè)面存在釣魚(yú)劫持風(fēng)險(xiǎn),導(dǎo)致用戶信息泄露 16四、代碼保護(hù)不足 17(十一) 可以重新編譯打包 17(十二) WebView漏洞 18(十三) Web表單設(shè)計(jì)缺陷,存在SQL注入漏洞 19(十四) 跨站點(diǎn)腳本編制 21(十五) Https敏感數(shù)據(jù)劫持漏洞 22(十六) 硬編碼 25(十七) 隨機(jī)數(shù)加密破解漏洞(偽隨機(jī)數(shù)) 26五、公共組件漏洞 29(十八) 組件ContentProvider配置錯(cuò)誤,導(dǎo)致數(shù)據(jù)泄漏 29(十九) 組件Activity配置錯(cuò)誤,導(dǎo)致登錄頁(yè)面被繞過(guò) 30(二十) 組件Service配置錯(cuò)誤,導(dǎo)致非法權(quán)限提升 31(二十一) 組件BroadcastReceiver配置錯(cuò)誤,導(dǎo)致拒絕服務(wù)、非法越權(quán) 32六、應(yīng)用配置錯(cuò)誤 33(二十二) 開(kāi)啟allowbackup備份權(quán)限,存在備份數(shù)據(jù)泄露風(fēng)險(xiǎn) 33(二十三) 開(kāi)啟Debuggable屬性,存在應(yīng)用信息篡改泄露風(fēng)險(xiǎn) 35七、XcodeGhost病毒 35(二十四) 下載非官方開(kāi)發(fā)工具,導(dǎo)致IOS版本APP被植入惡意代碼 35八、開(kāi)發(fā)者證書(shū)不規(guī)范 38(二十五) 開(kāi)發(fā)者證書(shū)不規(guī)范,導(dǎo)致開(kāi)發(fā)者身份信息不明 38九、后臺(tái)系統(tǒng)配置錯(cuò)誤 39(二十六) 不安全的http請(qǐng)求方法 39(二十七) Httphost頭部攻擊 40(二十八) App后臺(tái)其他高危漏洞,如:SQL注入、跨站、上傳、struts2遠(yuǎn)程代碼執(zhí)行、java反序列化等 40

一、敏感數(shù)據(jù)暴露明文傳輸用戶名、密碼和驗(yàn)證碼等敏感信息整改優(yōu)先級(jí):高問(wèn)題描述:用戶登錄過(guò)程中,在與服務(wù)器端交互時(shí)明文傳輸用戶名、密碼或者驗(yàn)證碼等,可導(dǎo)致用戶敏感信息泄露。檢查方法和步驟:對(duì)模擬器進(jìn)行設(shè)置,從Setting開(kāi)始設(shè)置依次選擇moreMobilenetworksAccessPointNamesTelKilaProxy:修改IP地址為虛擬機(jī)的IP地址。模擬器設(shè)置模擬器設(shè)置模擬器設(shè)置模擬器設(shè)置模擬器設(shè)置2.BurpSuite設(shè)置,在Proxy選項(xiàng)頁(yè)里的Options中進(jìn)行設(shè)置,在ProxyListeners中增加虛擬機(jī)IP地址的8080端口。BurpSuite設(shè)置3.利用BurpSuite對(duì)被測(cè)應(yīng)用進(jìn)行監(jiān)聽(tīng)。確保BurpSuite上的“interceptison(監(jiān)聽(tīng)是打開(kāi)的)”。然后點(diǎn)擊登陸.。登陸請(qǐng)求將被BurpSuite監(jiān)聽(tīng)攔截到。登陸處修改密碼BurpSuite設(shè)置檢查工具:BurpSuite等抓包分析工具(登錄、修改密碼、新增用戶設(shè)置密碼)整改建議:在被測(cè)應(yīng)用與服務(wù)器交互過(guò)程中,對(duì)用戶名、密碼和驗(yàn)證碼等敏感信息進(jìn)行加密傳輸。不安全的本地存儲(chǔ)整改優(yōu)先級(jí):高問(wèn)題描述:安卓開(kāi)發(fā)者使用多種方法將數(shù)據(jù)存儲(chǔ)在安卓應(yīng)用中,而存儲(chǔ)在本地的數(shù)據(jù)文件如果未加密,易造成敏感信息泄漏。檢查方法和步驟:1.SharedPreferences是用key-value來(lái)存儲(chǔ)私有的原始數(shù)據(jù)的xml文件。數(shù)據(jù)類(lèi)型有布爾型,浮點(diǎn)型,整形,長(zhǎng)整型和字符串。通常情況下存儲(chǔ)的路徑為:/data/data/<packagename>/shared_prefs/<filename.xml>。直接打開(kāi)查看是否有敏感數(shù)據(jù)。2.SQLite數(shù)據(jù)庫(kù)是輕量級(jí)基于文件的數(shù)據(jù)庫(kù)。這些文件通常以db或者sqlite結(jié)尾。安卓默認(rèn)提供了大量SQLite支持。應(yīng)用的數(shù)據(jù)庫(kù)一般存儲(chǔ)在下面的地方:/data/data/<packagename>/databases/<databasename.db>,可以使用SQLite數(shù)據(jù)庫(kù)直接打開(kāi)查看是否有敏感數(shù)據(jù)。3.檢查SD卡目錄中是否存在敏感數(shù)據(jù)。檢查工具:SQLite數(shù)據(jù)庫(kù)整改建議:對(duì)存儲(chǔ)在本地的數(shù)據(jù)文件進(jìn)行加密。泄漏后臺(tái)服務(wù)器地址,導(dǎo)致服務(wù)器可控整改優(yōu)先級(jí):高問(wèn)題描述:在使用BurpSuite等工具對(duì)應(yīng)用進(jìn)行監(jiān)聽(tīng)的過(guò)程中,發(fā)現(xiàn)后臺(tái)服務(wù)器地址。對(duì)后臺(tái)服務(wù)器進(jìn)行測(cè)試,若后臺(tái)服務(wù)器存在漏洞,則可控制后臺(tái)服務(wù)器。檢查方法和步驟:1.利用BurpSuite對(duì)被測(cè)應(yīng)用進(jìn)行監(jiān)聽(tīng)。確保BurpSuite上的“interceptison(監(jiān)聽(tīng)是打開(kāi)的)”。對(duì)監(jiān)聽(tīng)到的數(shù)據(jù)包進(jìn)行查看,是否有后臺(tái)服務(wù)器地址。2.如果發(fā)現(xiàn)后臺(tái)服務(wù)器地址,則對(duì)其進(jìn)行安全測(cè)試,檢查其是否存在SQL注入、struts2等后臺(tái)服務(wù)器漏洞。檢查工具:BurpSuite、SQL注入檢查工具、struts2漏洞檢查工具整改建議:對(duì)后臺(tái)服務(wù)器進(jìn)行安全加固,后臺(tái)服務(wù)器需要按照相關(guān)安全規(guī)定進(jìn)行配置,注意口令強(qiáng)度,后臺(tái)配置頁(yè)面原則上不能由公網(wǎng)隨意訪問(wèn)等。邊信道信息泄漏整改優(yōu)先級(jí):中問(wèn)題描述:當(dāng)APP處理用戶或其它數(shù)據(jù)源輸入的數(shù)據(jù)時(shí),可能會(huì)把數(shù)據(jù)放在不安全的位置,容易導(dǎo)致邊信道被攻擊者利用造成信息泄露。檢查方法和步驟:1.Android提供的日志功能是一個(gè)會(huì)造成信息泄露的地方,日志一般是開(kāi)發(fā)者在開(kāi)發(fā)期間調(diào)試使用的。查看日志的方式有兩種:1)使用Eclipse:在Logcat選項(xiàng)卡中看到應(yīng)用運(yùn)行期間輸出的所有日志信息,其中可能就會(huì)有一些敏感信息。Eclipse中的日志信息2)使用adb:使用命令#adblogcat在終端中打印出所有的日志。通過(guò)logcat的選項(xiàng)來(lái)過(guò)濾感興趣的內(nèi)容?;蛘咄ㄟ^(guò)命令#adblogcat>output.txt,將日志保存到電腦本地,以便后期進(jìn)一步分析。-vverbose打印詳細(xì)-ddebug打印調(diào)試級(jí)日志-Iinformation打印提示級(jí)日志-eerror打印錯(cuò)誤級(jí)日志-wwarning打印警告級(jí)日志使用adb導(dǎo)出日志2.URL緩存和瀏覽器Cookie對(duì)象:基于web的應(yīng)用程序會(huì)產(chǎn)生URL,cookie和緩存等泄露,允許攻擊者劫持用戶的會(huì)話。這樣的緩存可能存在日志,流量歷史,瀏覽緩存等多種形式。使用命令#adblogcat|grep“cookie”可以從logcat的輸出中過(guò)濾出諸如cookies等敏感信息。檢查工具:Eclipse、ADB整改建議:在日志中對(duì)于密碼等敏感信息進(jìn)行加密存儲(chǔ)。對(duì)敏感信息的緩存進(jìn)行加密。二、鑒權(quán)機(jī)制缺陷未使用有效的token機(jī)制,導(dǎo)致可以繞過(guò)鑒權(quán)整改優(yōu)先級(jí):高問(wèn)題描述:如果被測(cè)應(yīng)用沒(méi)有使用有效的token機(jī)制,對(duì)登陸響應(yīng)中的服務(wù)器返回的鑒權(quán)信息進(jìn)行修改,即可繞過(guò)服務(wù)器鑒權(quán),直接訪問(wèn)系統(tǒng)內(nèi)部信息。檢查方法和步驟:1.利用BurpSuite監(jiān)聽(tīng)登陸響應(yīng),對(duì)登陸響應(yīng)中的服務(wù)器返回的鑒權(quán)信息進(jìn)行修改。利用BurpSuite進(jìn)行監(jiān)聽(tīng)并修改鑒權(quán)信息2.修改后成功繞過(guò)登錄界面,進(jìn)入應(yīng)用界面。進(jìn)入應(yīng)用界面檢查工具:BurpSuite整改建議:使用有效的token機(jī)制進(jìn)行鑒權(quán)。傳輸數(shù)據(jù)可修改,造成越權(quán)訪問(wèn)整改優(yōu)先級(jí):高問(wèn)題描述:利用已有的用戶名密碼登錄應(yīng)用,當(dāng)應(yīng)用訪問(wèn)某一模塊時(shí),使用BurpSuite等工具進(jìn)行監(jiān)聽(tīng),對(duì)訪問(wèn)該模塊時(shí)的關(guān)鍵信息進(jìn)行替換,則可越權(quán)訪問(wèn)他人的應(yīng)用模塊。檢查方法和步驟:利用已知的用戶名密碼登錄被測(cè)應(yīng)用。利用BurpSuite對(duì)被測(cè)應(yīng)用進(jìn)行監(jiān)聽(tīng)。確保BurpSuite上的“interceptison(監(jiān)聽(tīng)是打開(kāi)的)”。以用戶在應(yīng)用中登錄郵箱為例,在用戶登錄郵箱的過(guò)程中,可以利用BurpSuite將數(shù)據(jù)包中該用戶的手機(jī)號(hào)碼更改為本公司通訊錄內(nèi)的任意手機(jī)號(hào)碼,則可成功登錄他人郵箱,導(dǎo)致越權(quán)訪問(wèn)問(wèn)題。修改手機(jī)號(hào)后成功登陸特定郵箱檢查工具:BurpSuite整改建議:在傳輸過(guò)程中對(duì)敏感數(shù)據(jù)進(jìn)行加密傳輸,并且在單點(diǎn)登錄過(guò)程中采用有效的token機(jī)制進(jìn)行鑒權(quán)。登錄設(shè)計(jì)缺陷,存在被暴力破解風(fēng)險(xiǎn)整改優(yōu)先級(jí):中問(wèn)題描述:用戶登錄過(guò)程中,未對(duì)同一用戶的登錄失敗次數(shù)做限制,導(dǎo)致存在被暴力破解的風(fēng)險(xiǎn)。檢查方法和步驟:利用BurpSuite中的Intruder功能對(duì)被測(cè)應(yīng)用進(jìn)行暴力破解。首先確保BurpSuite上的“interceptison(監(jiān)聽(tīng)是打開(kāi)的)”。然后點(diǎn)擊登陸.。登陸請(qǐng)求將被BurpSuite監(jiān)聽(tīng)攔截到,然后右鍵單擊"sendtointruder(發(fā)送給入侵者功能)。BurpSuite監(jiān)聽(tīng)攔截單擊"sendtointruder”2.進(jìn)入intruder標(biāo)簽,配置BurpSuite進(jìn)行暴力破解。在positions選項(xiàng)卡中,看到之前發(fā)送給Intruder的請(qǐng)求,重要的信息用亮色顯示。需要對(duì)暴力破解的參數(shù)進(jìn)行配置。單擊右邊的“clear”按鈕,將會(huì)刪除已有的信息。positions選項(xiàng)卡3.配置BurpSuite,可以把用戶名和密碼做為參數(shù),或者用戶名固定,僅把密碼做為參數(shù)。以用戶名和密碼都做為參數(shù)為例:選中請(qǐng)求中的username后單擊“Add(添加)”。同樣的將請(qǐng)求中的password也添加進(jìn)去。這樣操作之后,用戶名和密碼將會(huì)成為第一個(gè)和第二個(gè)參數(shù)。4.進(jìn)入payload選項(xiàng)卡,確保"payloadset"的值是1,點(diǎn)擊"load(加載)"加載一個(gè)包含用戶名的文件。同樣設(shè)置"payloadset"的值為2,點(diǎn)擊"load"加載一個(gè)密碼字典文件。加載字典加載成功5.點(diǎn)擊intruder標(biāo)簽中的startattack,開(kāi)始進(jìn)行暴力破解。開(kāi)始暴力破解檢查工具:BurpSuite整改建議:用戶登錄過(guò)程中,對(duì)用戶登錄失敗次數(shù)做限制,超過(guò)即在一定時(shí)間范圍內(nèi)不能登錄,防止被暴力破解。利用業(yè)務(wù)邏輯缺陷制作短信炸彈整改優(yōu)先級(jí):中問(wèn)題描述:如果在用戶注冊(cè)過(guò)程中存在邏輯設(shè)計(jì)缺陷,可對(duì)指定手機(jī)號(hào)碼隨意發(fā)送短信,造成短信炸彈攻擊,可能造成用戶投訴或惡意軟件傳播等。檢查方法和步驟:利用BurpSuite對(duì)被測(cè)應(yīng)用進(jìn)行監(jiān)聽(tīng)。確保BurpSuite上的“interceptison(監(jiān)聽(tīng)是打開(kāi)的)”。然后點(diǎn)擊登陸.。登陸請(qǐng)求將被BurpSuite監(jiān)聽(tīng)攔截到。BurpSuite監(jiān)聽(tīng)數(shù)據(jù)對(duì)明文傳輸?shù)氖謾C(jī)號(hào)和驗(yàn)證碼進(jìn)行修改,可以向任意注冊(cè)用戶無(wú)限次發(fā)送任意內(nèi)容短信。無(wú)限次發(fā)送驗(yàn)證碼檢查工具:無(wú)整改建議:在注冊(cè)獲取驗(yàn)證碼的模塊,加入發(fā)送次數(shù)限制機(jī)制。失效的會(huì)話管理(cookie不過(guò)期)整改優(yōu)先級(jí):高問(wèn)題描述:失效的會(huì)話管理用戶cookie不過(guò)期,退出登陸后,仍然可以使用cookie進(jìn)行操作檢查工具:Burp、瀏覽器整改建議:設(shè)置cookie、session過(guò)期機(jī)制,退出或超過(guò)時(shí)間自動(dòng)過(guò)期三、釣魚(yú)劫持風(fēng)險(xiǎn)關(guān)鍵頁(yè)面存在釣魚(yú)劫持風(fēng)險(xiǎn),導(dǎo)致用戶信息泄露整改優(yōu)先級(jí):高問(wèn)題描述:劫持釣魚(yú),指惡意應(yīng)用針對(duì)正常應(yīng)用的特定界面進(jìn)行仿冒替換,誘騙用戶在仿冒界面操作,達(dá)到釣魚(yú)目的。此類(lèi)攻擊,多針對(duì)APP的鑒權(quán)或支付場(chǎng)景,誘騙用戶輸入關(guān)鍵隱私信息,如賬號(hào)、登陸密碼和支付密碼等,達(dá)到隱私竊取的目的。檢查方法和步驟:編寫(xiě)代碼獲取棧頂Activity名稱,查看關(guān)鍵Activity是否可被釣魚(yú)劫持。利用Eclipse編寫(xiě)代碼查看棧頂activity測(cè)試包含敏感信息的界面(登錄,支付等)查看是否有加釣魚(yú)劫持保護(hù),如提示用戶等。釣魚(yú)劫持中的一種,通過(guò)intent跳轉(zhuǎn)檢查工具:JEB,Eclipse整改建議:當(dāng)應(yīng)用程序具有支付等敏感頁(yè)面時(shí),通過(guò)獲取棧頂Activity,判斷當(dāng)前運(yùn)行的是否本程序,一旦發(fā)現(xiàn)應(yīng)用被切換(可能被劫持),給予用戶提示以防范釣魚(yú)程序的欺詐。建議在關(guān)鍵類(lèi)的onpause中實(shí)現(xiàn)釣魚(yú)劫持防護(hù)功能。使用HTML5架構(gòu)或android+HTML5混合開(kāi)發(fā),實(shí)現(xiàn)登陸、支付等關(guān)鍵頁(yè)面,降低被劫持的風(fēng)險(xiǎn)。四、代碼保護(hù)不足可以重新編譯打包整改優(yōu)先級(jí):高問(wèn)題描述:破解者通過(guò)反編譯后得到程序源代碼,修改后重新編譯、簽名并安裝。在重新打包的過(guò)程中,破解者可能注入惡意代碼,或者修改軟件邏輯繞過(guò)鑒權(quán)等。檢查方法和步驟:1.查看反編譯后的源代碼,是否有密鑰信息。使用ApkTool重新編譯使用signapk對(duì)重新編譯的apk進(jìn)行簽名,之后即可安裝。使用signapk簽名檢查工具:ApkTool、signapk整改建議:通過(guò)檢查程序安裝后classes.dex文件的Hash值,判斷軟件是否被重打包并進(jìn)行提示。WebView漏洞整改優(yōu)先級(jí):高問(wèn)題描述:在webView下有一個(gè)非常特殊的接口函數(shù)addJavascriptInterface,能實(shí)現(xiàn)本地java和js的交互。被測(cè)應(yīng)用中存在WebView漏洞,沒(méi)有對(duì)注冊(cè)JAVA類(lèi)的方法調(diào)用進(jìn)行限制,導(dǎo)致攻擊者利用addJavascriptInterface這個(gè)接口函數(shù)穿透webkit控制android本機(jī)。檢查方法和步驟:利用反編譯軟件dex2jar和jdgui.exe得到源代碼。具體步驟如下:首先將APK文件后綴改為zip并解壓,得到其中的classes.dex,它就是java文件編譯再通過(guò)dx工具打包而成的,將classes.dex復(fù)制到dex2jar.bat所在目錄dex2jar-文件夾。在命令行下定位到dex2jar.bat所在目錄,運(yùn)行dex2jar.batclasses.dex,生成classes_dex2jar.jar使用dex2jar軟件使用jdgui.exe軟件進(jìn)入jdgui文件夾雙擊jd-gui.exe,打開(kāi)上面生成的jar包c(diǎn)lasses_dex2jar.jar,即可看到源代碼了。在源代碼中搜索如下的JAVA類(lèi)。addJavascriptInterface方法查看版本號(hào),如果是Android4.2之前版本查看源代碼中是否對(duì)addJavascriptInterface的輸入?yún)?shù)進(jìn)行過(guò)濾;如果是Android4.2及之后版本,檢查是否聲明@JavascriptInterface來(lái)代替addjavascriptInterface。檢查工具:反編譯軟件dex2jar和jdgui.exe整改建議:Android4.2之前版本對(duì)addJavascriptInterface的輸入?yún)?shù)進(jìn)行過(guò)濾;Android4.2及之后版本,使用聲明@JavascriptInterface來(lái)代替addjavascriptInterface。控制相關(guān)權(quán)限或者盡可能不要使用js2java的bridge。Web表單設(shè)計(jì)缺陷,存在SQL注入漏洞整改優(yōu)先級(jí):高問(wèn)題描述:開(kāi)發(fā)過(guò)程中未對(duì)特殊字符進(jìn)行過(guò)濾,攻擊者可以通過(guò)把SQL命令插入到Web表單提交或者輸入域名或者頁(yè)面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令的目的,這樣攻擊者就能夠?qū)?nèi)部數(shù)據(jù)庫(kù)進(jìn)行增刪改操作。檢查方法和步驟:利用BurpSuite中的Intruder功能對(duì)被測(cè)應(yīng)用進(jìn)行暴力破解。首先確保BurpSuite上的“interceptison(監(jiān)聽(tīng)是打開(kāi)的)”。然后點(diǎn)擊登陸。提交表單的請(qǐng)求將被BurpSuite監(jiān)聽(tīng)攔截到,然后將請(qǐng)求保存為txt格式。BurpSuite監(jiān)聽(tīng)攔截2.使用sqlmap對(duì)保存的請(qǐng)求進(jìn)行自動(dòng)化sql注入檢測(cè),檢測(cè)完畢后將會(huì)列出存在注入漏洞的點(diǎn)。使用sqlmap檢查注入點(diǎn)檢查工具:BurpSuite,SQLMap整改建議:加強(qiáng)對(duì)用戶輸入的驗(yàn)證,對(duì)于用戶的輸入增加過(guò)濾手段,例如拒絕某些特殊符號(hào)、語(yǔ)句等,防止通過(guò)SQL注入破壞數(shù)據(jù)庫(kù)??缯军c(diǎn)腳本編制整改優(yōu)先級(jí):高問(wèn)題描述:通過(guò)跨站點(diǎn)腳本編制漏洞,攻擊者可能會(huì)竊取或操縱客戶會(huì)話和cookie,它們可能用于模仿合法用戶,從而使黑客能夠以該用戶身份查看或變更用戶記錄以及執(zhí)行事務(wù)。檢查方法和步驟:1.利用burosuite抓取app的請(qǐng)求包2.利用Burp修改請(qǐng)求包,用xss測(cè)試腳本測(cè)試參數(shù)是否有xss漏洞漏洞地址:標(biāo)紅為存在漏洞的參數(shù)POST類(lèi)型:8081/mobileservices/mobileservices?method=cn.btsp.mobile.iface.mobileWorkplace.service.AccountAuthService.accountAuth_v201206{"arg0":99,"arg1":lt;script>alert('x')</script>","arg2":"","arg3":"","arg4":"\u603b\u673a\u670d\u52a1_\u6807\u51c6\u7248_android_304_4.1.2build1_share","arg5":"samsungSM-G3812","arg6":"","arg7":"q2S3B4M9V7D5M1M9S3M1K8D5q2_d087bb673b46d0966a0271d98deecb01"}瀏覽器中查看結(jié)果,會(huì)發(fā)現(xiàn)彈出含有1的框檢查工具:burp、瀏覽器整改建議:若干問(wèn)題的補(bǔ)救方法在于對(duì)用戶輸入進(jìn)行清理。通過(guò)驗(yàn)證用戶輸入未包含危險(xiǎn)字符,便可能防止惡意的用戶導(dǎo)致應(yīng)用程序執(zhí)行計(jì)劃外的任務(wù),例如:?jiǎn)?dòng)任意SQL查詢、嵌入將在客戶端執(zhí)行的Javascript代碼、運(yùn)行各種操作系統(tǒng)命令,等等。建議過(guò)濾出所有以下字符:[1]|(豎線符號(hào))[2]&(&符號(hào))[3];(分號(hào))[4]$(美元符號(hào))[5]%(百分比符號(hào))[6]@(at符號(hào))[7]'(單引號(hào))[8]"(引號(hào))[9]\'(反斜杠轉(zhuǎn)義單引號(hào))[10]\"(反斜杠轉(zhuǎn)義引號(hào))[11]<>(尖括號(hào))[12]()(括號(hào))[13]+(加號(hào))[14]CR(回車(chē)符,ASCII0x0d)[15]LF(換行,ASCII0x0a)[16],(逗號(hào))[17]\(反斜杠)Https敏感數(shù)據(jù)劫持漏洞整改優(yōu)先級(jí):中問(wèn)題描述:api不正確使用https相關(guān)函數(shù),可能引發(fā)通信加密失效,導(dǎo)致敏感數(shù)據(jù)泄漏檢查方法和步驟:1.通過(guò)dex2jar.bat反編譯apk包中的classes.dex文件2.利用jd-gui查看classes.jar里的源代碼漏洞地址:以下apicom\baidu\location\t$a$1.java|voidcheckServerTrusted(X509Certificate[]paramArrayOfX509Certificate,StringparamString)|L19:publicvoidcheckServerTrusted(X509Certificate[]paramArrayOfX509Certificate,StringparamString)com\loopj\android\http\MySSLSocketFactory$1.java|voidcheckServerTrusted(X509Certificate[]paramArrayOfX509Certificate,StringparamString)|L19:publicvoidcheckServerTrusted(X509Certificate[]paramArrayOfX509Certificate,StringparamString)io\dcloud\common\util\net\NetWork$SSLSocketFactoryEx$1.java|voidcheckServerTrusted(X509Certificate[]paramArrayOfX509Certificate,StringparamString)|L19:publicvoidcheckServerTrusted(X509Certificate[]paramArrayOfX509Certificate,StringparamString)io\dcloud\net\DownloadNetWork$1.java|voidcheckServerTrusted(X509Certificate[]paramArrayOfX509Certificate,StringparamString)|L19:publicvoidcheckServerTrusted(X509Certificate[]paramArrayOfX509Certificate,StringparamString)com\baidu\location\t.java|HttpClientjdMethod_if(HttpParamsparamHttpParams)|L131:localA.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);com\loopj\android\http\MySSLSocketFactory.java|MySSLSocketFactory(KeyStoreparamKeyStore)|L40:localMySSLSocketFactory.setHostnameVerifier(org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);io\dcloud\net\DownloadNetWork$2.java|booleanverify(StringparamString,SSLSessionparamSSLSession)|L13:publicbooleanverify(StringparamString,SSLSessionparamSSLSession)io\dcloud\common\adapter\ui\WebLoadEvent$1.java|voidonClick(DialogInterfaceparamDialogInterface,intparamInt)|忽略SSL證書(shū)錯(cuò)誤繼續(xù)加載頁(yè)面:sslErrorHceed()io\dcloud\common\adapter\ui\WebLoadEvent.java|voidonReceivedSslError(WebViewparamWebView,SslErrorHandlerparamSslErrorHandler,SslErrorparamSslError)|忽略SSL證書(shū)錯(cuò)誤繼續(xù)加載頁(yè)面:onReceivedSslError=>paramSslErrorHceed();檢查工具:jd-gui修復(fù)建議:建議對(duì)自定義的X509TrustManager實(shí)現(xiàn)對(duì)證書(shū)的嚴(yán)格校驗(yàn);setHostnameVerifier接口請(qǐng)?jiān)O(shè)置安全選項(xiàng)級(jí)別,如STRICT_HOSTNAME_VERIFIER硬編碼整改優(yōu)先級(jí):中問(wèn)題描述:將諸如加密密鑰之類(lèi)的存放在應(yīng)用程序中,導(dǎo)致加密算法被破解;服務(wù)器IP地址硬編碼在代碼中,造成服務(wù)器ip泄露,給服務(wù)器安全造成威脅。檢查方法和步驟:1.使用eclisp查看反編譯后的代碼中是否有加密密鑰和服務(wù)器IP地址檢查工具:eclisp整改建議:不要將密鑰、服務(wù)器ip地址寫(xiě)在代碼中。隨機(jī)數(shù)加密破解漏洞(偽隨機(jī)數(shù))整改優(yōu)先級(jí):中問(wèn)題描述:使用不安全的偽隨機(jī)數(shù)生成器,導(dǎo)致使用的隨機(jī)數(shù)或加密算法存在被破解的風(fēng)險(xiǎn)檢查方法和步驟:1.通過(guò)dex2jar.bat反編譯apk包中的classes.dex文件2.利用jd-gui查看classes.jar里的源代碼漏洞地址:io\dcloud\common\util\AESUtil.java|StringtoHex(byte[]paramArrayOfByte)|SecureRandom.setSeed(byte[]);檢查工具:jd-gui整改建議:使用/dev/urandom或者/dev/random獲取的熵值來(lái)初始化偽隨機(jī)數(shù)生成器PRNG五、公共組件漏洞組件ContentProvider配置錯(cuò)誤,導(dǎo)致數(shù)據(jù)泄漏整改優(yōu)先級(jí):高問(wèn)題描述:ContentProvider是安卓應(yīng)用組件,以表格的形式把數(shù)據(jù)展現(xiàn)給外部的應(yīng)用。每個(gè)ContentProvider都對(duì)應(yīng)一個(gè)以”content://”開(kāi)頭的特定URI,任何應(yīng)用都可以通過(guò)這個(gè)URI操作ContentProvider應(yīng)用的數(shù)據(jù)庫(kù)。如果應(yīng)用對(duì)權(quán)限控制不當(dāng)就會(huì)造成信息泄露。檢查方法和步驟:使用drozer獲取所有可以訪問(wèn)的URI:runvider.finduris-a(packagename)(packagename是待檢測(cè)的應(yīng)用包名)利用Mercury獲取可以訪問(wèn)的URI2.使用Mercury獲取各個(gè)URI的數(shù)據(jù):runvider.querycontent://com.mwr.example.sieve.DBContentProvider/Passwords/(content://com.mwr.example.sieve.DBContentProvider/Passwords/是上一步驟中得到的可以訪問(wèn)的URI)利用Mercury獲取可以訪問(wèn)的URI數(shù)據(jù)檢查工具:Mercury整改建議:在被測(cè)應(yīng)用的AndroidManifest.xml文件中,設(shè)置provider的android:exported屬性為false或者通過(guò)設(shè)置自定義權(quán)限來(lái)限制對(duì)contentprovider的訪問(wèn)。組件Activity配置錯(cuò)誤,導(dǎo)致登錄頁(yè)面被繞過(guò)整改優(yōu)先級(jí):高問(wèn)題描述:Activity是安卓應(yīng)用組件,提供與用戶進(jìn)行交互的界面。如果應(yīng)用對(duì)權(quán)限控制不當(dāng),可以繞過(guò)登錄界面直接顯示該界面。檢查方法和步驟:使用Mercury檢查APK中是否存在暴露的activity,使用命令run–a(packagename)。(packagename是待檢測(cè)的應(yīng)用包名)利用Mercury檢查是否有暴露的Activity在上圖中com.isi.testapp.MainActivity是正常啟動(dòng)的主界面。com.isi.testapp.Welcome是登錄鑒權(quán)后才能啟動(dòng)的界面??梢允褂靡韵旅顕L試啟動(dòng)。runapp.activity.start--componentcom.isi.testappcom.isi.testapp.Welcome利用Mercury啟動(dòng)Activity利用Mercury啟動(dòng)Activity進(jìn)入界面檢查工具:Mercury整改建議:通過(guò)設(shè)置自定義權(quán)限,限制對(duì)Activity的訪問(wèn)。組件Service配置錯(cuò)誤,導(dǎo)致非法權(quán)限提升整改優(yōu)先級(jí):高問(wèn)題描述:Service是Android中四大組件進(jìn)行后臺(tái)作業(yè)的主要組件,如果被測(cè)應(yīng)用對(duì)權(quán)限控制不當(dāng),導(dǎo)致其他應(yīng)用可以啟動(dòng)被測(cè)應(yīng)用的Service。檢查方法和步驟:使用JEB檢查APK中是否存在暴露的Service,將apk拖入JEB中,然后查找暴露的Service利用JEB檢查是否有暴露的Service在上圖中com.cleanmaster.appwidger.WidgerService屬性設(shè)置錯(cuò)誤,導(dǎo)致暴露。某被測(cè)應(yīng)用暴露了com.cleanmaster.appwidget.WidgetService服務(wù)組件當(dāng)向此服務(wù)發(fā)送action為com.cleanmaster.appwidget.ACTION_FASTCLEAN的intent時(shí),便可結(jié)束后臺(tái)運(yùn)行的一些app進(jìn)程。利用Eclipse編寫(xiě)代碼啟動(dòng)Service檢查工具:JEB,Eclipse整改建議:在被測(cè)應(yīng)用的AndroidManifest.xml文件中,設(shè)置Service的android:exported屬性為false或者通過(guò)設(shè)置自定義權(quán)限來(lái)限制對(duì)Service的訪問(wèn)。組件BroadcastReceiver配置錯(cuò)誤,導(dǎo)致拒絕服務(wù)、非法越權(quán)整改優(yōu)先級(jí):高問(wèn)題描述:BroadcastReceiver是Android中四大組件用于處理廣播事件的組件,若存在配置不當(dāng)則其他應(yīng)用可以偽裝發(fā)送廣播從而可造成信息泄露,拒絕服務(wù)攻擊等。檢查方法和步驟:使用JEB檢查APK中是否存在暴露的Receiver,將apk拖入JEB中,然后查找暴露的Receiver利用JEB檢查是否有暴露的Receiver在上圖中com.baidu.android.defense.push.PushMsgReceiver屬性設(shè)置錯(cuò)誤,所以是暴露的。某被測(cè)應(yīng)用中com.baidu.android.defense.push.PushMsgReceiver存在DOS攻擊的風(fēng)險(xiǎn)。PushMsgReceive可接收com.baidu.android.pushservice.action.MESSAGE和com.baidu.android.pushservice.action.RECEIVE兩種消息。發(fā)送com.baidu.androi-d.pushservice.action.RECEIVE消息,可使被測(cè)應(yīng)用崩潰。利用Eclipse編寫(xiě)代碼發(fā)送廣播利用漏洞將造成百度應(yīng)用關(guān)閉檢查工具:JEB,Eclipse整改建議:在被測(cè)應(yīng)用的AndroidManifest.xml文件中,設(shè)置receiver的android:exported屬性為false或者通過(guò)設(shè)置自定義權(quán)限來(lái)限制對(duì)receiver的訪問(wèn)。六、應(yīng)用配置錯(cuò)誤開(kāi)啟allowbackup備份權(quán)限,存在備份數(shù)據(jù)泄露風(fēng)險(xiǎn)整改優(yōu)先級(jí):高問(wèn)題描述:被測(cè)應(yīng)用的AndroidManifest.xml文件中allowBackup屬性值被設(shè)置為true,可通過(guò)adbbackup對(duì)應(yīng)用數(shù)據(jù)進(jìn)行備份,在無(wú)root的情況下可以導(dǎo)出應(yīng)用中存儲(chǔ)的所有數(shù)據(jù),造成用戶數(shù)據(jù)泄露。檢查方法和步驟:使用反編譯軟件ApkTool對(duì)apk進(jìn)行反編譯。使用命令apktooldXXX.apkABC反編譯XXX.apk到文件夾ABC利用apktool反編譯利用apktool反編譯AndroidManifest.xml是每個(gè)android程序中必須的文件,位于整個(gè)項(xiàng)目的根目錄,描述了package中暴露的組件(activities,services,等等),以及各自的實(shí)現(xiàn)類(lèi),各種能被處理的數(shù)據(jù)和啟動(dòng)位置。從安全角度來(lái)看,它包含了應(yīng)用程序中所有使用到的組件信息,同時(shí)它還會(huì)顯示應(yīng)用程序使用的permissiosns信息。在其中搜索allowBackup屬性,檢查是否被設(shè)置為true。檢查工具:ApkTool整改建議:將參數(shù)android:allowBackup屬性設(shè)置為false,防止數(shù)據(jù)泄漏。開(kāi)啟Debuggable屬性,存在應(yīng)用信息篡改泄露風(fēng)險(xiǎn)整改優(yōu)先級(jí):高問(wèn)題描述:被測(cè)應(yīng)用的AndroidManifest.xml文件中Debuggable屬性值被設(shè)置為true,可以設(shè)置斷點(diǎn)來(lái)控制程序的執(zhí)行流程,在應(yīng)用程序運(yùn)行時(shí)修改其行為。檢查方法和步驟:1.使用反編譯軟件ApkTool對(duì)apk進(jìn)行反編譯。詳見(jiàn)第一節(jié)。2.在AndroidManifest.xml中搜索Debuggable屬性,檢查是否被設(shè)置為true。檢查工具:ApkTool整改建議:將參數(shù)android:D

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論