从代码层理解android的重定向漏洞

admin 2022-08-08 08:36:38 AnQuanKeINFO 来源:ZONE.CI 全球网 0 阅读模式

 

前言

CMS.zone.ci/e/tags/htag.php?tag=Android target=_blank class=infotextkey>Android App中页面跳转主要通过Intent的显式,隐式传递来拉起其他的Activity组件,或是通过在CMS.zone.ci/e/tags/htag.php?tag=Android target=_blank class=infotextkey>AndroidManifest.xml中配置的CMS.zone.ci/e/tags/htag.php?tag=Android target=_blank class=infotextkey>Android:scheme进行DeepLinks拉起app或跳转页面。相应的,跳转的时候传入参数未校验,就可能存在风险。

 

Deeplinks格式

一般Deeplinks格式如下:

Scheme://host:port/path?query=xxxxxxx

被拉起的的App可以在CMS.zone.ci/e/tags/htag.php?tag=Android target=_blank class=infotextkey>AndroidManifest.xml中配置,向操作系统提前注册一个URL,开头的Scheme 用于从浏览器或其他App中拉起本App。
解析Scheme,判断Scheme属于哪个App,唤起App,传递参数给App由操作系统去完成。

 

demo

写一个简单的demo。
CMS.zone.ci/e/tags/htag.php?tag=Android target=_blank class=infotextkey>AndroidManifest.xml中注册并配置两个活动。其中Main2Activity中定义了对应的url。

编译后安装。
可以通过如下adb命令去拉起App。

adb shell am start -a "CMS.zone.ci/e/tags/htag.php?tag=Android target=_blank class=infotextkey>Android.intent.action.VIEW" -d "xxapp://webview"

或者通过浏览器去拉起。

<a href="xxapp://webview">run deme</a>

可以看到手机中App已经启动。

 

WebView中URL任意跳转

还是用上面额例子,这一次我们在Main2Activity中接收外部传入参数,进行加载。
默认返回是baidu。

按上面的adb命令执行,可以看到直接跳到baidu。

这里我们并未对传入的参数url进行校验,替换成其他的地址,也是可以加载的。

<a href="xxapp://webview?url=https://www.bilibili.com">run deme</a>

 

稍稍深入

在Web中,任意URL跳转漏洞由于功能限制,一般都是低危。但在移动应用中,往往会在WebView通过js去调用java接口使功能更加丰富。
通过注解@JavascriptInterface,表示方法可以被js调用。
这里我写了一个Toast,执行会返回对应的信息。

增加两行代码,开启js支持,绑定对象。

webView.getSettings().setJavascriptEnabled(true);
webView.addJavascriptInterface(Main2Activity.this, "main");

测试HTML

<HTML>
<body>
   <button type="button" onClick="window.main.jsinterface('hhhhhhhhhh123')" >invoke</button>
</body>
</HTML>

加载后,点击按钮会出现弹窗提示,表示调用成功。

前面讲到过App中页面切换主要是通过Intent的传递,Webview中也是可以对Intent协议进行解析的,这就可能导致通过一条链,导致通过App拉起其他组件或者App,导致其他的问题。

因为这里我没有去实现Webview支持intent解析,这里就没有演示了。

 

总结

简单学习了一下CMS.zone.ci/e/tags/htag.php?tag=Android target=_blank class=infotextkey>Android中存在的URL跳转问题及其简单利用,剩下就是尽可能去收集app,逆向收集对应的Deeplinks,分析业务,扩大危害。

weinxin
特别声明
本站(ZONE.CI)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
德国工商会遭大规模网络攻击 AnQuanKeINFO

德国工商会遭大规模网络攻击

第338期你好呀~欢迎来到“安全头条”!如果你是第一次光顾,可以先阅读站内公告了解我们哦。欢迎各位新老顾客前来拜访,在文章底部时常交流、疯狂讨论,都是小安欢迎哒~如果对本小站的内容
蓝队防守方战前准备篇(上) AnQuanKeINFO

蓝队防守方战前准备篇(上)

前言未知攻,焉知防。防守方的工作我粗略分为三个阶段,战前准备阶段、演练开始阶段、复盘总结阶段,从目标导向来看,攻击方的工作重心更偏向于演练开始阶段,而防守的工作重心更多的偏向于战前
评论:0   参与:  0