漏洞危害
我感觉说这个功能是漏洞有点牵强,先看看APK备份数据的功能是怎么来的,Android 从 API Level 8开始就提供了为APK应用程序备份和恢复数据的功能,此功能的开关可以通过应用程序中AndroidManifest.xml文件的allowBackup属性值进行配置,默认是True,所以用户可以对我们应用程序进行数据备份。正常来说是一项正常功能。
但是一些“白帽子”想到这个功能可以利用,用来备份用户的登录账号信息,所以才有演变成漏洞的味道,但是利用难度及其苛刻,需要用户登录了某应用,用户的手机还被攻击者拿到,还能解锁用户手机做操作,然后才能愉快的使用adb备份下来APK的数据。
基于利用成功的前提是需要这么多苛刻的条件,我是攻击者都不会采取这么低级的手段去获取一个应用的登录的信息,直接钓鱼不更快?所以唯一的危害就是这些“白帽子”会不胜其烦的提交到企业并大做文章渲染其危害,为了避免这个烦恼,开发者们在没有备份数据这个需求的情况下直接关闭这个功能,让这些“白帽子” shut up。
使用工具检测
jadx-gui-0.8.0.exe
检测步骤
- 反编译APK包,得到源码文件;
- 搜索allowBackup属性是否为true
结果确认:
- android:allowBackup="true" 说明存在漏洞,通过adb 就能备份APK数据,比如登录数据;
- android:allowBackup="flase" 说明不存在;
- 如果没配置 android:allowBackup 属性,那么Android系统会默认为 android:allowBackup="true" ;
漏洞利用
1.先在该被攻击设备A上执行如下命令将数据备份到电脑上:
$ adb backup -f back.ab -noapk com.jianshu.haruki
Now unlock your device and confirm the backup operation.
2.然后在换一台设备B安装此应用,但是不登陆任何帐号密码,执行如下命令:
$ adb restore back.ab
Now unlock your device and confirm the restore operation.