Android静态安全检测 -> 主机名弱校验
来源:互联网 发布:农夫抢购软件怎么样 编辑:程序博客网 时间:2024/05/16 04:51
主机名弱校验 - 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函数,校验服务器主机名的合法性
0 0
- Android静态安全检测 -> 主机名弱校验
- Android静态安全检测 -> 证书弱校验
- Android静态安全检测 -> 代码混淆检测
- Android静态安全检测 -> 系统Root检测
- Android静态安全检测 -> AES/DES弱加密
- Android静态安全检测 -> 代码动态加载安全检测
- Android静态安全检测 -> 随机数使用不安全
- Android静态安全检测 -> allowBackup标志位
- Android静态安全检测 -> 文件任意读写
- Android静态安全检测 -> SharedPreferences任意读写
- Android静态安全检测 -> debuggable标志位
- Android静态安全检测 -> 数据库文件任意读写
- Android静态安全检测 -> Activity组件暴露
- Android静态安全检测 -> Service组件暴露
- Android静态安全检测 -> PendingIntent误用风险
- Android静态安全检测 -> 日志泄漏风险
- Android静态安全检测 -> Hash算法不安全
- Android静态安全检测 -> 明文数字证书风险
- hdu 1847(Good Luck in CET-4 Everybody!——巴什博弈)
- fingerprintjs 的使用与说明
- Android自定义view01-ScrollView嵌套GridView
- 单表 多表 树形表 一对多 springmvc spring mybatis SSM 后台框架
- 史上最全github使用方法:github入门到精通
- Android静态安全检测 -> 主机名弱校验
- JSF导航
- sitemesh3-springMVC配置
- TelephonyManager的基本用法,只是看到了玩一下
- VisualVM 远程监控jmx程序
- 去重排序List(Java实现)
- 基于原生PHP的路由分配实现
- 练习用到的网络 路径
- 使用librtmp进行H264与AAC直播