一.app测试
adb常用指令
不安全的数据存储
屏幕录像保护
数据可备份
jadx工具
adb connect 127.0.0.1:21503 连接逍遥模拟器
adb conncet 127.0.0.1:62001 连接夜神模拟器
adb devices 查看连接设备
adb shell 进入shell
adb pull
adb push c:1.txt /data/local/ 上传本机文件到虚拟机
组件导出安全
测试工具 drozer
虚拟器安装agent.apk,主机连接drozer命令
adb forward tcp:31415 tcp:31415
drozer.bat console connect
activity组件
run app.activity.info -a jakhar.aseem.diva(包名)
run app.activity.start --component jakhar.aseem.diva jakhar.aseem.diva.APICreds2Activity
Service组件
run app.service.info -a com.package
run app.service.start --component com.package xxx.xxx.xxx
Content Provider组件
run scanner.provider.finduris -a app包名
run scanner.provider.injection -a APP包名 检测是否存在sql注入
run scanner.provider.traversal -a APP包名 检测是否存在目录遍历
测试 Content Provider,检测是否存在⽬录遍历
Broadcast Reeciever组件
run app.broadcast.info -a com.packagename
run app.broadcast.send --component com.packagename --action xxx.xxx.xxx
我遇到的 onReceive ⽅法中使⽤ getSerializableExtra 时缺少异常处理机制,存在拒绝服务⻛险
run app.broadcast.send --action xxx.xxx.push.PenddingIntent 数字签名校验
不安全的数据存储
敏感路径:/data/data/包名/ xml文件
adb pull /sdcard/ids2 d://test/ 导出手机文件到电脑上
数据库
日志安全
ps | grep 包名
adb logcat | findstr pid
adb shell /system/bin/screencap -p 输入png路径(安卓设备中) /data/local/tmp 普通用户可写
完整性校验
使用Andriodkiller工具,更改图片,
回编译不成功需要删除缓存文件。删除该目录下的C:Users16547AppDataLocalapktoolframework 1.apk文件
反编译保护
apktools
解包 java -jar apktools_2.6.1.jar d demo.apk -o demo d:指定反编译的apk文件 -o:指定输出目录
打包 java -jar apktool.jar b demo -o demo_test.apk b:指定打包的目录
安装包签名
java -jar apksigner.jar verify -v --print-certs APK文件路径
键盘记录
adb logcat -s Keylogger
adb backup -nosystem -noshared -apk -f com.xingming.test.ab jakhar.aseem.diva.MainActivity 备份为com.xingming.test.ab
java -jar abe.jar unpack com.xingming.test.ab xm.tar 解密备份文件
adb devices
//显示已连接的设备列表,测试手机是否正常连接
adb backup -nosystem -noshared -apk -f com.sina.weibo.ab com.sina.weibo
//-nosystem表示不备份系统应用 -noshared表示不备份应用存储在SD中的数据 -apk表示备份应用APK安装包 -f 表示备份的.ab文件路径和文件名 最后是要备份应用的packageName
adb kill-server //关闭ADB
adb devices //重新启动ADB,检测手机2是否成功连接
adb restore com.sina.weibo.ab 将备份数据恢复到另一个手机
二.app抓包
(1).信任用户证书
安卓7.0及以上系统对于证书的安全策略做了修改,用户证书只能用于代理浏览器的流量,而应用是不会信任这些证书。【ios和安卓<7.0的版本没有此问题】
解决方案:
1、root手机将证书导入到根证书目录下
2、换低版本安卓系统
操作流程:
1.下载Burp证书。
文件名为cacert.der
2.使用openssl将DER转换成PEM,然后输出subject_hash_old并重命名该文件:
openssl x509 -inform DER -in cacert.der -out cacert.pem
openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1
3.将cacert.pem的名字更改为刚才输出的hash.0
4.将证书复制到设备
先拷贝到sdcard,然后再mv到存放根证书的目录
adb push 9a5ba575.0 /sdcard/tmp/9a5ba575.0
mount -o rw,remount / 挂载,使sdcard目录可读写
mv /sdcard/tmp/9a5ba575.0 /system/etc/security/cacerts/9a5ba575.0 移动
cd /system/etc/security/cacerts
chmod 644 9a5ba575.0 更改权限
5.reboot重启设备即可
以上操作就可以让应用也信任burp证书。
然后burp就可以抓取到应用的数据包。
(2).抓包
原文始发于微信公众号(星冥安全):安全笔记总结-APP、小程序、公众号测试大全(src挖掘)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论