Android静态安全检测 -> 强制类型转换本地拒绝服务漏洞
强制类型转换本地拒绝服务漏洞 -Intent.getXXXExtra()一、API1. 继承关系【1】java.lang.Object【2】android.content.Intent2. 主要方法【1】getSerializableExtra(String name) 返回Serializable【2】getStr
强制类型转换本地拒绝服务漏洞 - Intent.getXXXExtra()
一、API
1. 继承关系
【1】java.lang.Object
【2】android.content.Intent
2. 主要方法
【1】getSerializableExtra(String name) 返回Serializable
【2】getStringExtra(String name) 返回String
【4】参考链接
https://developer.android.com/reference/android/content/Intent.html
二、触发条件
1. 定位强制类型转换的位置【check-cast】
2. 定位Intent.getXXXExtra方法的位置
【1】对应到smali语句中的特征
r'Landroid/content/Intent;->get.+Extra\('
3. 判断是否为导出的组件【exported属性为true】
三、漏洞原理
【1】导出的组件没有对getSerializableExtra()等获取到的数据进行类型判断而进行强制类型转换,从而导致类型转换异常而导致应用崩溃
【2】更多内容
http://wolfeye.baidu.com/blog/local-dos/
https://jaq.alibaba.com/community/art/show?spm=a313e.7975615.40002100.22.IAgwPP&articleid=55
http://www.droidsec.cn/阿里聚安全扫描器之本地拒绝服务检测详解/
四、修复建议
【1】不必要导出的组件,建议显示设置组件的“android:exported”属性为false
【2】在做强制类型转换时,要先进行类型判断并使用try catch,防止异常数据导致强制转换抛出异常
更多推荐
所有评论(0)