Android安全检测-Intent Scheme URLs攻击风险

这一章我们来学习“Intent Scheme URLs攻击风险”,网上的文章关于这个风险的介绍可谓是千篇一律,翻阅下来之后发现内容大致相同,单看这些文章的介绍仍然让人感觉到云里雾里,故此篇文章中会讲清楚这风险的产生和应对方法。

一、漏洞原理

利用intent scheme URLs(意图协议URL),可以通过web页面发送intent来启动App应用。攻击者可构造特殊格式的URL直接向系统发送意图,启动App应用的Activity组件或者发送异常数据,导致应用的敏感信息泄露或者应用崩溃。
上述的漏洞描述中可知,通过web页面发送intent来启动App应用这个操作没有经过过滤和校验那么就会存在风险。我们来拆解一下上述的文字。
(1)web页面: 一般指的是被检测的APP,也就是说被检测APP有浏览器功能,并支持Intent Scheme协议,相当于被检测APP是一个桥梁当然若是APP使用了Intent.parseUri方法,并且uri来自于外部输入的话,就算没有浏览器功能,也可能产生此漏洞
(2)启动App应用: 一般启动的是任意APP的暴露的Activity组件

综上可知:Intent Scheme URLs攻击风险,一般会和其它漏洞进行综合利用,比如:Intent Scheme URLs攻击 + Activity组件暴露 = 可产生拒绝服务漏洞(APP崩溃)、WebView相关漏洞(加载恶意页面、远程代码执行等)、APP静默下载安装等。若被检测APP存在intent scheme URLs漏洞,这就会导致手机设备内的任意APP若存在可关联的漏洞,那么就可以通过Intent Scheme URLs漏洞进行恶意攻击

二、前置知识

通过漏洞原理可以了解到漏洞产生的原因,那么现在来了解一下和这个漏洞相关的一些知识
(1)Intent Scheme协议:
通过浏览器(WebView)加载URI的形式使用Intent协议跳转到指定的app页面。一般使用Intent.parseUri(String uri,int flags)方法,来构造Intent。第二个参数的值的会影响Scheme协议的构造方式,大致如下:
a. Intent.URI_INTENT_SCHEME:经常使用,URI形式类似:scheme://host:port/path
b. Intent.URI_ANDROID_APP_SCHEME:URI形式类似:android-app://{package_id}[/{scheme}[/{host}[/{path}]]][#Intent;{...}]
c. Intent.URI_ALLOW_UNSAFE:一般不使用,不太安全

(2)android.intent.category.BROWSABLE:
android.intent.category.BROWSABL的意思就是允许浏览器在特定条件下可以打开APP的Activity,例如:

 <activity
            android:name=".MainActivity"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
        		<!--协议部分,随便设置 test://aaa.com:8088/from?type=abcd  -->
        		<data android:scheme="test"
            		android:host="aaa.com"
            		android:path="/from"
            		android:port="8088"/>
            </intent-filter>
 </activity>

通过 Intent.parseUri("test://aaa.com:8088/from?type=abcd",Intent.URI_INTENT_SCHEME),构造Intent即可启动MainActivity

三、检测手段

step1:扫描全局代码,是否存在使用Intent.parseUri
step2:若URI来源于外部的输入,并使用了Intent.parseUri方法,那么获取的Intent必须严格过滤,判断Itent是否至少包含addCategory(“android.intent.category.BROWSABLE”),setComponent(null),setSelector(null)3个策略。若URI在代码内硬编码,则针对此URI进行漏洞测试。
step3:汇总结果

四、修复方法

1、如果使用了Intent.parseUri方法,那么必须对获取的intent进行严格过滤,intent至少包含addCategory(“android.intent.category.BROWSABLE”),setComponent(null),setSelector(null)3个策略
2、对于外部来源的intent要进行严格过滤,也可设立白名单。


asjhan for Android reverse

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Intent Scheme URLs攻击是一种针对Android系统的网络攻击手段。Intent Scheme URLs允许应用程序之间通过URL进行通信和数据共享,但是恶意攻击者可以利用这一特性来欺骗用户,让其在点击链接时执行恶意操作。攻击者会利用一些诱人的链接来引诱用户点击,一旦用户点击了这些链接,可能会触发恶意程序的执行,从而导致个人隐私数据泄露或设备被感染。 这种攻击常常通过社交媒体、短信、电子邮件等途径传播,并且往往伪装成一些诱人的内容,例如“点击这个链接可以获得免费优惠券”、“点击这个链接可以查看别人的私人照片”等。一旦用户点击了这些链接,就会被带到包含恶意代码的页面,并且触发恶意程序的执行。 为了防范Intent Scheme URLs攻击,用户可以通过以下方式提高安全意识:不随意点击不明来源的链接,尤其是涉及到个人信息或敏感内容的链接;避免下载来路不明的应用程序或者通过第三方应用商店下载应用;安装并及时更新手机系统的安全补丁;使用安全可靠的杀毒软件进行设备安全检查。 另外,开发者也可以通过强化应用程序的安全性来减少Intent Scheme URLs攻击风险,例如在应用程序中加入URL验证机制、对用户输入进行严格的过滤和验证等。这样可以在一定程度上提升应用程序的安全性,降低被攻击风险

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值