android webview 跨域,实战Webview跨域访问风险
漏洞原理:
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跨域访问风险相关推荐
- php session 域,PHP session 跨子域问题总结
今天,做项目时候遇到个问题.之前做东西的时候session一般就直接存在数据库中这样就能解决跨域 不仅仅是跨子域,但是今天遇到这个问题是,自己要在别人现有的东西上面做修改.由于仅仅是子域 当时就行肯定 ...
- SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析
最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jQuery ajax跨 ...
- php跨域单点登录,SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析...
SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1. 跨域redirect实例: te ...
- JQuery 的跨域方法 可跨任意网站
JS的跨域问题,很多人在网上找其解决方法,教其用IFRAME去解决的文章很多,真有那么复杂吗?其实很简单的,如果你用JQUERY,一个GETJSON方法就搞定了,而且是一行代码搞定. 下面开始贴出方法 ...
- 【转】JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- 跨域问题_跨域问题如何解决?
" 今天的内容比较大众,相信广大程序猿都有遇到过,那么咱们就不多BB了,直接往下看." 首先聊聊为什么会出现跨域问题?跨域是什么? 域(Domain)是Windows网络中独立运行 ...
- 什么是跨域?以及跨域的解决方案!
什么是跨域 跨域,是指浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制. 同源策略限制了一下行为: Cookie.LocalStorage 和 ...
- 跨交换机打通二层广播域不通问题解决过程
同事反馈,要打通跨交换机打通二层广播域,发现不通,让解决. 拓扑如下: 如图组网,每个交换机管理ip是1920.168.100.编号,级联下级交换机编号比上级大20,每个交换机的和从交换机的vlan就 ...
最新文章
- 八种常见排序方法总结 C/C++代码实现
- 覆盖40种语言:谷歌发布多语言、多任务NLP新基准XTREME
- H5 新标签用法及解释
- java子类实例初始化过程
- 计算机监控检修维护规程,DL/T 1009-2016 水电厂计算机监控系统运行及维护规程
- pugixml解析Word
- Android之万能适配器Adapter的使用
- ktv登陆功能的实现 1216
- Java网络编程——Socket
- 【论文写作】城市酒店入住信息管理系统中客房各项功能如何写
- 两台XP系统电脑用双网卡共享上网操作
- 卸载HP LaserJet 激光打印机的驱动程序--Win7环境
- 为什么博途V17及以下的HMI面板不能与1500固件版本2.9或1200版本4.5 的CPU建立连接?
- Oracle首席工程师四火:技术面试中,怎样的问题才是好问题?
- 【MySQL】听柠檬班公开课后,学习笔记及作业(二)
- 强制重启计算机快捷键,强制重启电脑快捷键
- IS61LV25616芯片技术手册
- CVPR 2022 | 惊呆了!只用一张图+相机走位,AI就能脑补周围环境!
- vue实战项目仿卖座电影APP
- 分享最新的autohotkey快捷键代码,不知不觉中写了2千行.
热门文章
- error execution phase preflight: couldn‘t validate the identity of the API Server: abort connecting
- 2014年实习生招聘之华为实习生招聘笔试题(上机完成)—2014/04/02
- 携程-出行产品未来14个月销量预测-第七名代码解读
- python 连接 Linux 的 redis 报错 (redis.exceptions.ConnectionError: Error 10061 ...由于目标计算机积极拒绝,无法连接)
- 科普:原型验证系统VS硬件仿真器,哪一个更好?
- GeoGebra 多阶拟合
- 如何画UML状态机图与状态表
- 【水滴石穿】SpringBoot 集成Swagger
- 【C语言】练习题 - 菲姐游泳 - 附视频讲解
- 微信小程序搜索框以及简单的页面内容搜索的实现