安卓應用程式滲透測試(四)
在前面的幾篇文章中,連結在這裡part1, ofollow,noindex">part2 ,part3,我們講了Android的基本架構,滲透測試工具和ADB,現在我們來看下Android應用程式滲透測試如何入門。
從安全形度來看,檢視清單檔案通常是滲透測試人員開始滲透之前第一件要做的事情。
Android清單檔案
·提供Android應用程式所有詳細細節
· 命名應用程式的Java包
· 宣告所有許可權
· 描述Android應用程式元件
· 包含應用程式所需的最低階API的宣告
· 執行改程式所需的最低Android版本
· 所有服務
我們將使用insecurebank這個apk來進行演示
允許除錯:true
如果應用程式被標記為可除錯,任何攻擊者在獲取應用程式的許可權後可以訪問應用程式的資料,也可以在該應用程式許可權下執行任意程式碼。
Java Debug Wire 協議是偵錯程式和JVM例項之間的中心連結。
手機沒有root,也是可以通過應用程式允許來獲取資料或執行任意程式碼的。
APP啟動前:
APP啟動後:
上面是我個人手機的shell終端,手機並沒有root。
允許備份:true
這個設定定義啟用了USB除錯的使用者能否備份和儲存應用程式資料。
因此,處理和儲存信用卡資訊,密碼等敏感資訊的應用程式此設定應該設定為false,來防止敏感資訊洩露風險。
開啟終端
輸入如下命令
-Adb backup -apk -shared (apk name)
再輸入下面這條命令
Cat backup.ab zlib-flate -uncompress > backup_compressed.tar
許可權
許可權是對訪問裝置上部分程式碼和資料的一種限制。
應該檢查有許可權複製資料到外部儲存的應用程式,以確保沒有儲存敏感資訊。
應審查應用程式請求的所有許可權,以確保它們不會帶來安全風險。
許可權屬性的值有下面4個:
·Normal(普通)
· Dangerous(危險)
· Signature(簽名)
· Signature Or System(簽名或系統)
示例
<permission> Android:protectionLevel=“signature” </permission>
Intents(意圖)
這些是用於將兩個或多個不同Android元件繫結在一起的元件。Intents可用於執行各種任務,例如啟動操作,切換活動和啟動服務。
Intents可用於啟動活動,將其傳送到任何感興趣的廣播接收器元件,以及與後臺服務通訊。應該審查Intents訊息,以確保它們不包含任何可能被截獲的敏感資訊。
<Intent-filter> <action android:name=”string” /> <category android:name=”string” /> </Intents-filter>
顯式意圖將一個活動連線到同一個應用程式中的另一個活動。這些Intents通過名稱指定目標元件,它們通常用於應用程式內部訊息——例如當用戶單擊按鈕時啟動同類型活動的活動。
隱式意圖不命名目標,元件名稱的欄位留空。隱式意圖通常用於啟用其他應用程式中的元件。例如,如果我們想要向用戶顯示地圖上的位置,我們可以使用隱式意圖來請求另一個能夠定位的應用在地圖上顯示指定位置。
敬請期待安卓應用程式滲透測試五。