Android漏洞解析之旅---WebView的跨域漏洞分析和应用被克隆问题情景还原(免Root获取应用沙盒数据)

一、前言

去年年底支付宝的被克隆漏洞被爆出,无独有偶就是腾讯干的,其实真正了解这个事件之后会发现,感觉是针对支付宝。因为这个漏洞找出肯定花费了很大劲,主要是因为支付宝的特殊业务需要开启了WebView的跨域访问功能,导致了这个问题,其实Google官方的Android早期版本这个功能默认是开启的的确是个漏洞,但是最后的版本都默认关闭了,除非应用自己业务需要就开启。而支付宝的口令红包是利用了WebView进行操作的。同时开启了这个功能,腾讯应该是研究了很久的支付宝代码才分析出来的。不过就在过年前几天,阿里也爆出了腾讯微信的此类问题。其实现在很多app因为特殊业务需求会手动打开这个功能。但是这个功能开启的确有一定风险,而且非常严重。当然也不一定需要关闭这个功能,可以在WebView打开的时候做url安全检查也可以。后面分析这个漏洞就知道了。

当然本文不会针对支付宝问题来说这个问题,因为没必要而且支付宝也修复了,本文的目的在于把这个漏洞问题解释清楚,所以本文就自己写案例来介绍一下即可。主要包括服务端和客户端,客户端大家都知道不多说了,服务端之前我开发过JavaWeb,所以弄起来比较简单,这里不给出详细步骤。首先我们大致了解一下支付宝那个事件,支付宝有口令红包,在网页中会跳转到支付内部的WebView页面,这个主要利用了Android中自带的Activity启动协议scheme:

然后可以在网页html中通过链接app://www.wjdiankong.cn这样的形式打开我们的应用到这个Activity页面中。

 

二、漏洞情景还原

第一、构建客户端项目

下面就开始搭建构造案例项目,首先来构建一个客户端程序:

这里最主要的就是WebView这个Activity类,因为后面我们通过系统浏览器打开一个页面,通过协议链接打开跳转到这里:

这里我们内部是一个WebView,为了验证问题,就手动打开跨域访问开关,有两个方法可以操作。通过测试发现这两个方法随便打开一个都是可以复现问题的。然后就是通过跳转过来的链接携带想用WebView打开的url地址,一般这个地址就是包含恶意功能的网页,这里肯定就是利用跨域问题,把案例应用的沙盒数据的上传到指定服务器中。

 

第二、构建服务端项目

好了,客户端的项目构建成功了,下面就要构建服务端程序了,首先我们肯定要有一个可以让客户端浏览器打开的开始页面,然后就是接受恶意页面利用跨域问题获取到沙盒数据上传的接口,因为我之前弄过JavaWeb开发,所以操作起来比较简单,去Eclipse官网下载一个EclipseEE工具,然后新建一个工程即可:

点击新建,然后选择动态web项目:

我这里之前已经配置的tomcat目录了,首次会提示你选择

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值