l 检查不正确的Cookie配置
l 不安全的令牌创建
l 不安全的WebView实现
2.5. M5-加密不足【客户端/网络/服务端攻击】
在这个部分,你需要在使用加密的地方进行枚举以执行一个全面分析。例如:
使用SSL/TLS加密类型
l 使用HTTPS URL或使用一个安全通道例如实现HttpsURLConnection或SSLSocket
l 身份验证会话令牌
l 在数据存储中明文存放敏感信息
l 可以访问加密密钥或不正确的密钥管理

l 使用已知的弱加密算法例如Rot13, MD4,MD5, RC2, R, SHA1
l 自制或自行设计的加密算法
l 程序代码内硬编码密钥
l 使用自有协议
l 不安全的使用随机
2.6. M6-不安全的授权【客户端/服务端攻击】
在对应用程序架构和数据流有所理解后,可以依照以下方法验证授权机制:
l 凭据处理:应用程序是否使用授权令牌而不是始终询问凭证?
l 验证应用程序是否仅允许指定角色访问。
l 在数据存储中存储用户名密码,而不是使用AccountManager
2.7. M7-客户端代码质量【客户端攻击】
这部分有两种方法:
l 如果你可以访问源代码,对客户端代码和服务器API进行代码审计。
l 如果不能访问源代码,你可以通过反编译APK文件来检查代码
在这个案例里我们强烈建议进行代码审计。由于不正确的实现,这里肯定会有很多潜在的漏洞。
2.8. M8-代码篡改【客户端攻击】
这一部分你需要一台已经root的设备以及逆向工程技术。
l 使用工具例如apktool, dex2jar /enjarify, Bytecodeviewer或商业工具类似JEB反编译APK文件。
l 使用反编译器例如JD-GUI或Bytecodeviewer分析代码。商业版本的工具类似JEB甚至允许你调试已经反编译的应用,虽然不是所有情况都可以。
l 在分析完代码后,尝试绕过各类功能,无论是通过Xposed或Frida框架修改Smali代码还是劫持方法实现。
l 验证应用程序是否进行了混淆并且通过搜索指定字符串验证混淆级别。
l 反编译APK并更改Smali(利用这个工具,它可以自动反编译,编译和签名应用。https://github.com/voider1/a2scomp)
l 安卓的二进制文件本质上是dex类,如果不加保护,可以直接反编译出源代码。
需要进行检查和验证是否有以下限制:
l 已越狱,Root后的设备-检测限制
l 校验和限制
l 证书绑定限制
l 调试器检测限制
l Xposed检测限制
l 动态加载代码
l 使用安卓NDK中原生代码
2.9. M9-逆向工程【客户端攻击】
逆向工程在移动应用测试中是一个必要部分。它同样需要使用一部已经Root的设备。移动设备网络代码为了这部分测试请确保你已经准备了以下工具:
l 已安装SDK工具的Android Studio
l 一部已经Rooted的安卓设备或模拟器
l 已经Root的安卓模拟器可以使用已安装Xposed的CuckoDroid
l 安装了不同的APK反编译工具例如apktool,Dex2Jar/enjarify或选择集成环境的话可以是Bytecodeviewer或JEB
l IDA pro (分析代码流程)
l Smali反编译器/编译器以及签名程序:https://github.com/voider1/a2scomp
验证以下问题:
l 应用程序是否进行了混淆?
l 利用工具Bytecodeviewer或JEB查找关键字符串以及关键词
l 搜索SSL证书绑定实现,设备Root权限获取或API连接(查找关键字例如’TrustManager’ , ‘SHA256′, X509 ,SHA, SSL ,更多细节请查阅安卓安全概览https://developer.box.com/docs/android-security-guidelines)
2.10. M10-多余的功能
进行这部分的测试需要进行代码审计或对APK进行逆向工程(如果无法获得代码)
l Jonathan Carter
l Prashant Phatak
l Milan Singh Thakur
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-77465-3.html
美国在叙利亚的拙败后的又一出恶作剧