Android靜態安全檢測 -> 強制類型轉換本地拒絕服務漏洞

強制類型轉換本地拒絕服務漏洞 - 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,防止異常數據導致強制轉換拋出異常


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章