1.反编译 修改 编译 签名
2.allowbackup漏洞 是否为true (允许备份)
3.debug模式 (反编译后的androidmanifest.xml 中debuggable 是否true 。为true可被java调试)
4.应用权限测试(应用权限是否大于业务需要权限)
5.组件安全测试(4大组件 adb+drozer)
android:exported=true ,可以导出
android:exported=false 不可导出
未声明android:exported:
组件不是Content Provider:
包含<intent-filter>则可导出,反之不可;
组件是Content Provider:
若SDK版本<17,则可导出,反之不可。
MyService 的exported=true 可以被调用
6.Intent 本地拒绝服务检测
7.webview 组件安全:
4.2以上 androidManifest.xml 中的targetSdkVersion 是否大于等于17
2.1-4.3.1 Webview 代码执行漏洞:
drozer 命令 run sacnner.misc.checkjavascriptbridge -a 包名
WebView 不效验证书检测:搜索 onReceivedSslError 是否调用了handle.process()方法
WebView 密码明文保存检测:搜索 setSavePassword是否为false
8.组件通信分析
组件暴露,SQL注入等。 adb+drozer
9.敏感信息安全测试
9.1检查私有目录下的文件权限
9.2检测客户端程序存储在手机中的SharedPreferences配置文件
9.3检查客户端程序存储在手机中的SQLite数据库文件
9.4APK包中是否保存敏感信息
9.5其他文件存储数据。
9.6敏感信息是否加密,加密算法是否安全
10.logcat日志
11.密码软键盘安全测试
11.1键盘劫持:安卓按键记录工具(ns_keylogger.apk)
11.2屏幕录像(防截图) adb shell /system/bin/screencap -p 安卓目录
12.安全策略设置测试
12.1密码复杂度
12.2账号登录限制(多地登陆)
12.3账号锁定策略
12.4私密问题验证
12.5会话安全设置
12.6界面切换保护
12.7UI信息泄露 (敏感信息是否遮挡)
12.8验证码安全
12.9安全退出
12.10密码修改验证
12.11 Activity界面劫持 (可以借用HijackActivity.apk)
12.12 登录界面设计(用户枚举等)
12.13 弱加密算法审查 (反编译 查看源码 )
12.14应用权限测试
13.手势密码测试
13.1手势密码复杂度
13.2手势密码的修改和取消
13.3手势密码本地信息保存
13.4手势密码的锁定策略
13.5手势密码的抗攻击测试 (Xposed 框架+SwipeBack)
14.进程保护测试
14.1内存访问和修改 (MemSpector)
14.2动态注入(通过ptrace挂载,DDL注入)
14.3本地端口开放检测
14.4 外部动态加载DEX安全风险测试
14.5 so 库函数接口检测
15.通信安全测试
15.1通信加密:SSL版本是否小于3.0或者TLS v1 加密算法是否安全
使用 openssl 检测 (openssl s_client -host 域名 -port 端口)
15.2关键数据加密和效验
15.3访问控制(URL是否只能由手机客户端访问。绕过登录等)
15.4客户端更新安全性(代理抓取更新的数据包,替换成恶意URL是否进行下载。下载后是否会替换)
15.5短信重放攻击
16:安全增强测试
16.1第三方SDK安全测试
16.2 二维码识别测试
17:业务安全