Android静态安全检测 -> 主机名弱校验
2016-07-29 16:12
1216 查看
主机名弱校验 - HostnameVerifier.verify方法
一、API
1. 继承关系
【1】javax.net.ssl.HostnameVerifier
【2】public interface HostnameVerifier
2. 主要方法
【1】verify(String hostname, SSLSession
session)
校验服务器主机名
【2】参考链接
https://developer.android.com/reference/javax/net/ssl/HostnameVerifier.html
3. 示例
【1】verify方法,接受任意域名服务器
【2】参考链接
http://pingguohe.net/2016/02/26/Android-App-secure-ssl.html
二、触发条件
1. 自定义实现HostnameVerifier
【1】对应到smali语句中的特征
.implements Ljavax/net/ssl/HostnameVerifier;
2. verify方法中的语句
【1】定位verify方法
.method public verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z
【2】verify方法内的语句判断
const v0, 0x1
return v0
3. 漏洞代码示例
三、漏洞原理
【1】自定义实现的HostnameVerifier子类中,未对主机名做验证,默认接受所有域名,会存在安全风险,可能会导致恶意程序利用中间人攻击绕过主机名校验
【2】更多内容
http://pingguohe.net/2016/02/26/Android-App-secure-ssl.html
http://www.droidsec.cn/android-https中间人劫持漏洞浅析/
https://jaq.alibaba.com/community/art/show?spm=a313e.7975615.40002100.4.1ooXUl&articleid=60
四、修复建议
【1】利用HostnameVerifier子类中的verify函数,校验服务器主机名的合法性
相关文章推荐
- 这是对gist.github.com中间人攻击吗?
- 从零开始学Android应用安全测试
- 详解Android App AllowBackup配置带来的风险
- iOS中的弱SSL认证
- Android App AllowBackup配置带来的风险
- 内网劫持渗透利器——MITMf指南
- 通过伪造CA证书,实现SSL中间人攻击
- 【android安全】之防止apk被篡改后重编译。
- 【android安全】之使用ssl验证保护网络数据传输安全。
- 【android安全】之保护app组件
- 【android安全】保护app本地数据文件
- E矿大获取密码测试
- Android Security 汇总
- Android静态安全检测 -> 随机数使用不安全
- Android静态安全检测 -> allowBackup标志位
- Android静态安全检测 -> 文件任意读写
- Android静态安全检测 -> SharedPreferences任意读写
- Android静态安全检测 -> debuggable标志位
- Android静态安全检测 -> WebView明文存储密码