1. 程式人生 > 其它 >學習安卓APP測試的一些筆記

學習安卓APP測試的一些筆記

工具 adb: adb.exe devices 檢視當前有那些裝置 adb.exe connext 127.0.0.1:62001 連線 adb.exe root 使用root許可權啟動 adb.exe remount 重新安裝分割槽讀寫 adb.exe shell 進入安卓命令列 adb.exe install "C;/1.apk" 安裝APP adb.exe pull /data/data/com.nfjj.app/databases/xxx.db D:\ drozer: adb.exe forward tcp:31415 tcp:31415 新增路由 drozer.bat console connect localhost 連線drozer run app.package.list 獲取APP包名 run app.activity.info -a a.b.c(APP包名) 列出所有activity run app.activity.start --component a.b.c(APP包名) aa.bb.cc.dd(activity) 呼叫該activity SSL Pinning:
frida xposed+JustTrustMe
  • 安卓測試checklist

一、客戶端安全測試

1.1反編譯保護檢測 使用工具APKScan、jadx-gui檢視APP是否進行加殼保護,大部分程式碼是否進行混淆。 1.2安裝包簽名檢測 使用工具jadx-gui反編譯檢視APK signature中的企業簽名信息(主題),v1為不安全 1.3應用完整性校驗檢測 使用ApkToolBox將APP解包(反編譯apk) 隨便找一個資原始檔修改(建議logo圖示),再用ApkToolBox重新打包(回編譯apk) 對檔案進行簽名,重新解除安裝安裝APP檢視是否正常執行 1.4程式資料任意備份 使用工具jadx-gui反編譯,檢視AndroidManifest.xml檔案中android:allowBackup屬性值是否為true(true為不合規) 1.5程式可被任意除錯 使用工具jadx-gui反編譯,檢視AndroidManifest.xml檔案中android:debuggable屬性值是否為true(true為不合規,沒發現欄位則合規)

二、元件安全

2.1 Activity越權檢測 進入drozer run app.activity.info -a com.nfjj.mh(檢視所有activity) run app.activity.start --component com.nfjj.mh(包名) aaa.bbb.ccc(元件名) [越權呼叫activity元件檢視是否有敏感資訊] 2.2 Activity拒絕服務檢測 run app.activity.info -a com.nfjj.mh(檢視所有activity) run app.activity.start --component com.nfjj.mh(包名) aaa.bbb.ccc(元件名) [呼叫activity元件預設傳送畸形的intent,調完檢視APP是否正常執行] 2.3 Activity劫持保護檢測 run app.activity.info -a com.test.uihijack(檢視劫持專用APP的元件名) run app.activity.start --component com.test.uihijack com.test.uihijack.MainActivity(元件名) [檢視APP頁面被劫持後是否出現APP已退出到後臺字樣] 2.4 Service越權檢測 run app.service.info -a com.nfjj.mh(檢視所有service) run app.service.start --component com.nfjj.mh aaa.bbb.ccc(元件名) [和activity劫持同理] 2.5 Service拒絕服務檢測 run app.service.info -a com.nfjj.mh(檢視所有service) run app.service.start --component com.nfjj.mh aaa.bbb.ccc(元件名) [和activity拒絕服務同理] 2.6 Receiver越權檢測 run app.broadcast.info -a com.nfjj.mh(檢視所有reveiver) run app.broadcast.send --action aaa.bbb.ccc(元件名) [可直接只輸入元件名] 2.7 Receiver拒絕服務檢測 run app.broadcast.info -a com.nfjj.mh(檢視所有reveiver) run app.broadcast.send --action aaa.bbb.ccc(元件名) [可直接只輸入元件名] 2.8 Provider SQL注入檢測 run app.provider.info -a com.nfjj.mh(檢視可被匯出的provider元件) run scanner.provider.injection -a com.nfjj.mh(注入檢測) 2.9 Provider目錄遍歷檢測 run app.provider.info -a com.nfjj.mh(檢視可被匯出的provider元件) run scanner.provider.traversal -a com.nfjj.mh(目錄遍歷檢測) 2.10 WebView程式碼執行檢測 使用jadx-gui檢視AndroidManifest.xml檔案中android:minSdkVersion屬性值是否小於等於17(大於17為合規) run scanner.misc.checkjavascriptbridge -a com.nfjj.mh(命令檢測) 2.11 WebView未移除介面檢測 使用jadx-gui檢視AndroidManifest.xml檔案中android:minSdkVersion屬性值是否小於等於17(大於17為合規)

三、執行環境安全

3.1 Root環境檢測 在已Root的手機/模擬器中開啟APP,檢視是否有Root執行風險提示

四、敏感資訊保安

4.1 SQLite加密檢測 .db檔案預設路徑:/data/data/包名/databases/xxxx.db 匯出檔案命令: adb.exe pull /data/data/com.nfjj.app/databases/xxx.db D:\ 通過navicat檢視資料庫內容是否加密 4.2 SQLite敏感資訊檢測 .db檔案預設路徑:/data/data/包名/databases/xxxx.db 匯出檔案命令: adb.exe pull /data/data/com.nfjj.app(包名)/databases/xxx.db D:\ 通過navicat檢視資料庫是否可以看到敏感資訊 4.3 SharedPref敏感資訊檢測 檢視sharedpreferences資料夾下的xml檔案是否存在敏感資訊 預設路徑:/data/data/com.nfjj.app(包名)/sharedpreferences/xxx.xml 匯出檔案命令: adb.exe pull /data/data/com.nfjj.app(包名)/sharedpreferences/xxx.xml D:\ 4.4 Log敏感資訊檢測 adb.exe logcat > log.txt 點選APP所有功能後檢視log.txt中是否存在敏感資訊 4.5 敏感資訊檢測 檢視/data/data/com.nfjj.app(包名)/(shared_prefs、databases、files、cache)下的檔案是否存在敏感資訊

五、網路通訊安全

5.1 網路通訊安全 使用burp抓取APP的請求包,檢視是否為https協議 5.2 關鍵字加密 使用burp抓取APP的請求包,檢視登入、交易等關鍵操作的欄位是否進行加密 5.3 安全退出檢測 記錄登入狀態的請求包,使用者登出後再次嘗試請求,檢視是否成功 5.4 網路切換保護 切換wifi或熱點,檢視是否提示使用者切換了網路字樣 5.5 開放埠檢測 netstat 檢視全域性監聽的埠

六、安全策略安全

6.1 密碼複雜度策略 檢視設定密碼複雜度(123456類似密碼是否可註冊成功) 6.2 賬號鎖定策略 登入次數過多鎖定策略 6.3 賬號登入限制 是否可以多臺裝置同時登入同一賬戶 6.4 登入資訊模糊處理 賬戶錯誤提示"輸入賬戶錯誤",密碼錯誤提示"輸入密碼錯誤",可爆破 6.5 介面切換保護 切換APP時,敏感資訊是否會清空或模糊處理 6.6 鍵盤記錄保護 是否使用自帶的鍵盤(建議使用企業自定義軟鍵盤)