漏洞原理:

WebView对象的行为是通过WebSettings类进行设置的,如果配置不当,攻击者就可以利用该漏洞可以打破Android沙盒隔离机制,从而通过某个应用来攻击其它应用,盗取其它应用本地保存的配置文件、敏感信息等。

主要利用了android.webkit.WebSettings类中setAllowFileAccess()、setJavaScriptEnabled()、setAllowFileAccessFromFileURLs()、setAllowUniversalAccessFromFileURLs()四个方法配置不当(允许webview使用file协议并允许使用javaScript)的风险,并配合Activity组件暴露漏洞进行攻击。

setAllowFileAccess()

// 启用或禁用Webview中的文件访问,默认是true

webView.getSettings().setAllowFileAccess(true);

setJavaScriptEnabled()

// 设置webview是否启用javascript执行,默认是false,设置为true就是启用javascript执行。

webview.getWebSettings().setJavaScriptEnabled(true);

setAllowFileAccessFromFileURLs()

// 设置是否允许通过 file url 加载的文件中Js代码读取其他的本地文件。

// 需要注意的是如果getAllowUniversalAccessFromFileURLs()的值为true,则此设置的值将被忽略。要启用最严格的安全策略,应该禁用此设置:

webView.getSettings().setAllowFileAccessFromFileURLs(false);

// Api级别15及以下,默认是true

// Api级别JELLY_BEAN(API级别16,android4.1版本代号,中文翻译果冻豆)及以上默认是false

setAllowUniversalAccessFromFileURLs()

// 设置是否允许通过 file url 加载的 Javascript 可以访问其他的源(包括http、https等源)

webView.getSettings().setAllowUniversalAccessFromFileURLs(true);

// Api级别15及以下,默认是true

// Api级别JELLY_BEAN(API级别16,android4.1版本代号,中文翻译果冻豆)及以上默认是false

漏洞危害:

攻击者利用配置不当的风险,诱导用户点击攻击链接,在本地生成html文件,并使用intent对象传递该恶意html的file url给被攻击app可导出的组件,使被攻击app加载本地生成html文件中的恶意js,达到盗取用户其它应用私有目录中保存的敏感欣喜、配置文件的目的。会导致隐私信息泄露,针对IM类软件会导致聊天信息、联系人等等重要信息泄露,针对浏览器类软件,则更多的是cookie信息泄露。

以某个app为例,可一下形成该漏洞的原因,以及进行测试的方法。

1,如图X5WebView类继承了webview类,并且设置了允许file协议,以及启用了javascript执行;

2,再看看使用该X5Webview类的Activity,发现URL是从intent传递的对象中获取的,并且没有做任何白名单处理,直接启动了Activity;

3,并且发现该activity是可导出的,如图:

基于以上三点,攻击者可以用恶意链接实现生成本地恶意攻击html,并传递恶意html的file路径给可导出的组件,该组件加载访问html文件执行其中的恶意js,会导致私有目录中的文件被攻击者获取。

最后编辑:2018-01-14作者:admin

这个作者貌似有点懒,什么都没有留下。

android webview 跨域,实战Webview跨域访问风险相关推荐

  1. php session 域,PHP session 跨子域问题总结

    今天,做项目时候遇到个问题.之前做东西的时候session一般就直接存在数据库中这样就能解决跨域 不仅仅是跨子域,但是今天遇到这个问题是,自己要在别人现有的东西上面做修改.由于仅仅是子域 当时就行肯定 ...

  2. SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析

    最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jQuery ajax跨 ...

  3. php跨域单点登录,SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析...

    SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1. 跨域redirect实例: te ...

  4. JQuery 的跨域方法 可跨任意网站

    JS的跨域问题,很多人在网上找其解决方法,教其用IFRAME去解决的文章很多,真有那么复杂吗?其实很简单的,如果你用JQUERY,一个GETJSON方法就搞定了,而且是一行代码搞定. 下面开始贴出方法 ...

  5. 【转】JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  6. JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  7. 跨域问题_跨域问题如何解决?

    " 今天的内容比较大众,相信广大程序猿都有遇到过,那么咱们就不多BB了,直接往下看." 首先聊聊为什么会出现跨域问题?跨域是什么? 域(Domain)是Windows网络中独立运行 ...

  8. 什么是跨域?以及跨域的解决方案!

    什么是跨域 跨域,是指浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制. 同源策略限制了一下行为: Cookie.LocalStorage 和 ...

  9. 跨交换机打通二层广播域不通问题解决过程

    同事反馈,要打通跨交换机打通二层广播域,发现不通,让解决. 拓扑如下: 如图组网,每个交换机管理ip是1920.168.100.编号,级联下级交换机编号比上级大20,每个交换机的和从交换机的vlan就 ...

最新文章

  1. 八种常见排序方法总结 C/C++代码实现
  2. 覆盖40种语言:谷歌发布多语言、多任务NLP新基准XTREME
  3. H5 新标签用法及解释
  4. java子类实例初始化过程
  5. 计算机监控检修维护规程,DL/T 1009-2016 水电厂计算机监控系统运行及维护规程
  6. pugixml解析Word
  7. Android之万能适配器Adapter的使用
  8. ktv登陆功能的实现 1216
  9. Java网络编程——Socket
  10. 【论文写作】城市酒店入住信息管理系统中客房各项功能如何写
  11. 两台XP系统电脑用双网卡共享上网操作
  12. 卸载HP LaserJet 激光打印机的驱动程序--Win7环境
  13. 为什么博途V17及以下的HMI面板不能与1500固件版本2.9或1200版本4.5 的CPU建立连接?
  14. Oracle首席工程师四火:技术面试中,怎样的问题才是好问题?
  15. 【MySQL】听柠檬班公开课后,学习笔记及作业(二)
  16. 强制重启计算机快捷键,强制重启电脑快捷键
  17. IS61LV25616芯片技术手册
  18. CVPR 2022 | 惊呆了!只用一张图+相机走位,AI就能脑补周围环境!
  19. vue实战项目仿卖座电影APP
  20. 分享最新的autohotkey快捷键代码,不知不觉中写了2千行.

热门文章

  1. error execution phase preflight: couldn‘t validate the identity of the API Server: abort connecting
  2. 2014年实习生招聘之华为实习生招聘笔试题(上机完成)—2014/04/02
  3. 携程-出行产品未来14个月销量预测-第七名代码解读
  4. python 连接 Linux 的 redis 报错 (redis.exceptions.ConnectionError: Error 10061 ...由于目标计算机积极拒绝,无法连接)
  5. 科普:原型验证系统VS硬件仿真器,哪一个更好?
  6. GeoGebra 多阶拟合
  7. 如何画UML状态机图与状态表
  8. 【水滴石穿】SpringBoot 集成Swagger
  9. 【C语言】练习题 - 菲姐游泳 - 附视频讲解
  10. 微信小程序搜索框以及简单的页面内容搜索的实现