Android靜態安全檢測 -> Intent Scheme URL 漏洞

Intent Scheme URL 漏洞 - parseUri方法


一、Intent scheme URL的解析及過濾


1. 利用 Intent.parseUri 解析uri,獲取原始的intent對象


2. 對intent對象設置過濾規則,不同的瀏覽器有不同的策略


3. 通過Context.startActivityIfNeeded或者Context.startActivity發送intent


4. 其中,步驟2起關鍵作用,過濾規則缺失或者存在缺陷都會導致Intent Schem URL攻擊


二、觸發條件


1. Intent.parseUri()


【1】對應到smali中的特徵:Landroid/content/Intent;->parseUri(


【2】缺失過濾規則:

  Intent.addCategory("android.intent.category.BROWSABLE")

  Intent.setComponent(null)

  Intent.setSelector(null)


三、漏洞原理


【1】如果瀏覽器支持Intent Scheme Uri語法,如果過濾不當,那麼惡意用戶可能通過瀏覽器js代碼進行一些惡意行爲,比如盜取cookie等。如果使用了Intent.parseUri函數,獲取的intent必須嚴格過濾,intent至少包含addCategory(“android.intent.category.BROWSABLE”),setComponent(null),setSelector(null)3個策略


【2】詳細的原理&POC,參考鏈接:


Android Intent Scheme URLs攻擊



http://drops.wooyun.org/papers/2893


四、修復建議



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