安卓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.log将logcat存放在/data/local/目录下,在adb shell下进入/data/local/目录,查看logcat


使用 df 命令检查文件系统以及可用空间和大小

4、使用apktool对apk文件进行反编译,使用命令apktool d [apkname].apk,将apk文件反编译


相反,使用命令apktool b [folder name] [target-apkname].apk可将反编译后的文件重新编译成想要命名的apk文件
5、在反编译完成的文件中,查看定义它们的 AndroidManifest.xml 文件,在android:allowbackup处值为true,说明存在可备份漏洞,可使用adb backup和adb 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

此处只做演示。
浙公网安备 33010602011771号