学习安卓APP测试的一些笔记

发布时间:2022-07-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了学习安卓APP测试的一些笔记脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
工具
adb:
adb.exe devices 查看当前有那些设备
adb.exe connext 127.0.0.1:62001 连接
adb.exe root 使用root权限启动
adb.exe remount 重新安装分区读写
adb.exe shell 进入安卓命令行
adb.exe install "C;/1.apk" 安装APP
adb.exe pull /data/data/com.nfjj.app/databases/xxx.db D:
drozer:
adb.exe forward tcp:31415 tcp:31415 添加路由
drozer.bat console connect localhost 连接drozer
run app.package.list 获取APP包名
run app.activITy.info -a a.b.c(APP包名) 列出所有activity
run app.activity.start --component a.b.c(APP包名) aa.bb.cc.dd(activity) 调用该activity
SSL Pinning:
frida
xposed+JustTrustMe
  • 安卓测试checklist

一、客户端安全测试

1.1反编译保护检测
使用工具APKScan、jadx-gui查看APP是否进行加壳保护,大部分代码是否进行混淆。
1.2安装包签名检测
使用工具jadx-gui反编译查看APK signature中的企业签名信息(主题),v1为不安全
1.3应用完整性校验检测
使用ApkToolBox将APP解包(反编译apk)
随便找一个资文件修改(建议LOGo图标),再用ApkToolBox重新打包(回编译apk)
对文件进行签名,重新卸载安装APP查看是否正常运行
1.4程序数据任意备份
使用工具jadx-gui反编译,查看AndROIdManifest.XMl文件中android:allowBackup属性值是否为true(true为不合规)
1.5程序可被任意调试
使用工具jadx-gui反编译,查看AndroidManifest.xML文件中android:debuggable属性值是否为true(true为不合规,没发现字段则合规)

二、组件安全

2.1 Activity越权检测
进入drozer
run app.activity.info -a com.nfjj.mh(查看所有activity)
run app.activity.start --component com.nfjj.mh(包名) aaa.bbb.ccc(组件名) [越权调用activity组件查看是否有敏感信息]
2.2 Activity拒绝服务检测
run app.activity.info -a com.nfjj.mh(查看所有activity)
run app.activity.start --component com.nfjj.mh(包名) aaa.bbb.ccc(组件名) [调用activity组件默认发送畸形的intent,调完查看APP是否正常运行]
2.3 Activity劫持保护检测
run app.activity.info -a com.test.uihijack(查看劫持专用APP的组件名)
run app.activity.start --component com.test.uihijack com.test.uihijack.MainActivity(组件名) [查看APP页面被劫持后是否出现APP已退出到后台字样]
2.4 Service越权检测
run app.service.info -a com.nfjj.mh(查看所有service)
run app.service.start --component com.nfjj.mh aaa.bbb.ccc(组件名) [和activity劫持同理]
2.5 Service拒绝服务检测
run app.service.info -a com.nfjj.mh(查看所有service)
run app.service.start --component com.nfjj.mh aaa.bbb.ccc(组件名) [和activity拒绝服务同理]
2.6 Receiver越权检测
run app.broadcast.info -a com.nfjj.mh(查看所有reveiver)
run app.broadcast.send --action aaa.bbb.ccc(组件名) [可直接只输入组件名]
2.7 Receiver拒绝服务检测
run app.broadcast.info -a com.nfjj.mh(查看所有reveiver)
run app.broadcast.send --action aaa.bbb.ccc(组件名) [可直接只输入组件名]
2.8 PRovider SQL注入检测
run app.provider.info -a com.nfjj.mh(查看可被导出的provider组件)
run scanner.provider.injection -a com.nfjj.mh(注入检测)
2.9 Provider目录遍历检测
run app.provider.info -a com.nfjj.mh(查看可被导出的provider组件)
run scanner.provider.traversal -a com.nfjj.mh(目录遍历检测)
2.10 WebView代码执行检测
使用jadx-gui查看AndroidManifest.xml文件中android:minSdkVersion属性值是否小于等于17(大于17为合规)
run scanner.misc.checkjavascriptbridge -a com.nfjj.mh(命令检测)
2.11 WebView未移除接口检测
使用jadx-gui查看AndroidManifest.xml文件中android:minSdkVersion属性值是否小于等于17(大于17为合规)

三、运行环境安全

3.1 Root环境检测
在已Root的手机/模拟器中打开APP,查看是否有Root运行风险提示

四、敏感信息安全

4.1 SQLite加密检测
.db文件默认路径:/data/data/包名/databases/xxxx.db
导出文件命令: adb.exe pull /data/data/com.nfjj.app/databases/xxx.db D:
通过navicat查看数据库内容是否加密
4.2 SQLite敏感信息检测
.db文件默认路径:/data/data/包名/databases/xxxx.db
导出文件命令: adb.exe pull /data/data/com.nfjj.app(包名)/databases/xxx.db D:
通过navicat查看数据库是否可以看到敏感信息
4.3 SharedPref敏感信息检测
查看sharedpreferences文件夹下的xml文件是否存在敏感信息
默认路径:/data/data/com.nfjj.app(包名)/sharedpreferences/xxx.xml
导出文件命令: adb.exe pull /data/data/com.nfjj.app(包名)/sharedpreferences/xxx.xml D:
4.4 Log敏感信息检测
adb.exe logcat > log.txt
点击APP所有功能后查看log.txt中是否存在敏感信息
4.5 敏感信息检测
查看/data/data/com.nfjj.app(包名)/(shared_prefs、databases、files、cache)下的文件是否存在敏感信息

五、网络通信安全

5.1 网络通信安全
使用burp抓取APP的请求包,查看是否为https协议
5.2 关键字加密
使用burp抓取APP的请求包,查看登录、交易等关键操作的字段是否进行加密
5.3 安全退出检测
记录登录状态的请求包,用户注销后再次尝试请求,查看是否成功
5.4 网络切换保护
切换wifi热点,查看是否提示用户切换了网络字样
5.5 开放端口检测
netstat 查看全局监听的端口

六、安全策略安全

6.1 密码复杂度策略
查看设置密码复杂度(123456类似密码是否可注册成功)
6.2 账号锁定策略
登录次数过多锁定策略
6.3 账号登录限制
是否可以多台设备同时登录同一账户
6.4 登录信息模糊处理
账户错误提示"输入账户错误",密码错误提示"输入密码错误",可爆破
6.5 界面切换保护
切换APP时,敏感信息是否会清空或模糊处理
6.6 键盘记录保护
是否使用自带的键盘(建议使用企业自定义软键盘)

脚本宝典总结

以上是脚本宝典为你收集整理的学习安卓APP测试的一些笔记全部内容,希望文章能够帮你解决学习安卓APP测试的一些笔记所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。