Android静态安全检测 - WebView File域同源策略绕过漏洞

2024-08-29 03:08

本文主要是介绍Android静态安全检测 - WebView File域同源策略绕过漏洞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

WebSettings.setAllowFileAccess( ) & WebSettings.setJavaScriptEnabled( )



关于WebView组件安全的整理:http://blog.yaq.qq.com/blog/10

一、API


1. 继承关系


【1】java.lang.Object

【2】android.webkit.WebSettings


2. 主要方法


【1】setAllowFileAccess(boolean allow)

 设置是否允许访问WebView内部文件

  默认为true


【2】setJavaScriptEnabled(boolean flag)

  设置是否允许执行JS

 默认为false


【3】参考链接


http://www.apihome.cn/api/android/WebSettings.html


http://blog.alexwan1989.com/2016/01/21/Android:WebView开发笔记(二)/


https://developer.android.com/reference/android/webkit/WebSettings.html


二、触发条件


1. 调用getSettings方法,获取WebSettings对象


【1】对应到smali语句中的特征:

   Landroid/webkit/WebView;->getSettings()Landroid/webkit/WebSettings;


2. 调用WebSettings.setAllowFileAccess方法,设置setAllowFileAccess(true)或没有显示设置(默认为true)


【1】对应到smali语句中的特征:

   Landroid/webkit/WebSettings;->setAllowFileAccess(Z)V

   判断对寄存器的赋值:const v1 0x1


3. 调用WebSettings.setJavaScriptEnabled方法,设置setJavaScriptEnabled(true)


【1】对应到smali语句中的特征:

   Landroid/webkit/WebSettings;->setJavaScriptEnabled(Z)V

   判断对寄存器的赋值:const v1 0x1


三、漏洞原理


【1】应用程序一旦使用WebView,同时支持File域,并打开了对JavaScript的支持,就能利用JavaScript的延时执行,绕过file协议的同源检查,并能够访问应用程序的私有文件,导致敏感信息泄露


【2】参考链接


https://jaq.alibaba.com/community/art/show?spm=a313e.7975615.40002100.1.Tp61Qv&articleid=62


http://drops.wooyun.org/mobile/11263


四、修复建议


1】对于不需要使用File协议的应用,禁用File协议,显式设置webView.getSettings().setAllowFileAccess(false)


【2】对于需要使用File协议的应用,禁止File协议调用JavaScript,显式设置webView.getSettings().setJavaScriptEnabled(false)

这篇关于Android静态安全检测 - WebView File域同源策略绕过漏洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116668

相关文章

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo