本APP安全测试系列分为5个篇章,这五个篇章的内容可以作为APP测试的样例,在遇到APP测试工作时,可以直接依次按照教程的步骤进行测试,最后编写APP测试报告即可。
-
测试前准备
-
身份鉴别
-
数据传输与存储
-
容错与客户端保护
-
业务及Web应用安全
话不多说,直接开始第一篇,测试前准备:
1、burp抓APP包
1)设置burpsuite代理:
打开burpsuite软件->点击proxy->选择option->点击add->添加本地IP作为监听服务器,端口号随意设置:
2)设置手机、模拟器监听:
找到手机设置->WLAN->长按WiFi->修改网络,代理改为手动,代理服务器改为burpsuite设置的IP值,端口为刚刚设置的端口:
3)检查是否代理成功:
打开APP,查看burpsuite->proxy->intercept是否抓包成功(以17K小说app为测试对象进行演示):
2、使用adb工具
夜神模拟器操作如下:
点击设置中的关于平板电脑选项,进入后一直点击版本号,直到出现开发者模式已开启:
回到设置页面,点击开发者选项,将USB调试设置为开启:
cmd进入夜神目录下bin文件夹,adb.execonnect 127.0.0.1:62001进行连接:
adb shell->cd /data/data->ls -a查看APP包
3、AllowBackup漏洞
1)漏洞分析
当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。尤其是通讯录应用,一旦应用程序支持备份和恢复功能,攻击者即可通过adb backup和adb restore进行恢复新安装的同一个应用来查看聊天记录等信息;对于支付金融类应用,攻击者可通过此来进行恶意支付、盗取存款等。
2)漏洞检测
打开“ApkIDE”软件->打开APP的apk文件->在AndroidManifest.xml中查找AllowBackup的值。
4、JDK验证签名
cmd进入jdk目录-> jarsigner –verify +apk目录
5、app逆向处理
将apk后缀改为Zip,解压后有classes.dex文件->将classes.dex复制粘贴至dex2jar目录下->cmd进入dex2jar目录下->输入命令d2j-dex2jar.bat classes.dex->生成class-dex2jar.jar文件。
2)将class-dex2jar.jar文件用jd_gui打开
6、查看目录权限
cmd进入adb目录->adb shell->ls –la /data/data/com.chineseall.reader
用户/用户所在组/其他人:其他人只有执行权利,未涉及读写权利
权限分析drwxr-x—x表示的意义:
r(read):读取文件内容
w(write):可以编辑、修改文件内容
x(excute):执行文件的权限
d:表示该文件是目录文件
rwx:表示用户拥有读、写和执行权限
r-x:表示用户所在组拥有读、执行权限
- -x:表示其他用户只有执行权限
7、so->“JAVA+C”编码方式
“JAVA+C”编码方式(见图8.1):
1)代码保护:APK对Java代码很容易反编译、阅读和篡改,而对C/C++开发
出来的so库进行反汇编难度较大;
2)便于移植:用C/C++写的so库可以方便移植到其它的嵌入式平台上使用;
检查方法:将apk反编译,看是否有代码混淆。
8、使用ADB查看日志
cmd->进入adb目录-> adb logcat
关注公众号了解更多资讯
原文始发于微信公众号(纵横安全圈):APP安全测试系列-准备篇
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论