Android之WebView安全

本文探讨了Android WebView存在的安全问题,包括通过Content Provider、Activity导出和SQLite数据库的攻击途径,重点分析了addJavascriptInterface的远程代码执行漏洞,以及WebView的文件系统访问、SQLite查询、证书错误处理、域控制不严格等安全隐患。建议开发者采取措施,如禁用不必要的接口,修复证书错误处理,严格控制文件访问权限,以增强WebView的安全性。
摘要由CSDN通过智能技术生成

本地攻击

(1)Content Provider

         SQL注入、实现openFile函数导致目录遍历

(2)Activity的导出、劫持问题

        私有组件错误导出

(3)SQLite数据库

       SQL注入、load_extension代码执行

 

1.WebView安全

Android内置用于显示Web内容的控件。除用于 实现Web浏览器之外,还可利用HTML5的丰富交互效果和多媒体功能,直接开发App界面逻辑。  由于其复杂的功能实现和可访问远程内容的能力,可用于实现远程攻击。

(1)addJavascriptInterface远程代码执行漏洞

(2)hybrid Api设计不当

(3)未禁止记住密码

(4)忽略页面证书错误

(5)客户端跨站脚本

(6)允许file://协议访问

1.1 addJavascriptInterface

最常见的Javascript与Java层的通信方式。通过注入Java对象到WebView的javascript上下文,提供给页面访问本地代码的能力。

class JsObject{

@addJavascriptInterface

public String toString(){return "injectedObject";}

webView.addJavascriptInterface(new JsObject(), "injectedObject");

webView.loadData("", "text/html", null);

webView.loadUrl("javascript:alert(injectedObject.toString())");

(1)在Java中存在反射机制,可通过包名和类名获取Class实例,并通过方法名实现动态函数调用

(2)在Android2.1至4.1的所有版本中,使用addJavascriptInterface注入到WebView的Java对象可以利用继承的getClass方法,结合反射机制实现任意代码执行。

(3)漏洞具有可远程触发,利用稳定、影响版本广泛,无需适配等特性,是Android最为严重的攻击面。

网页挂马利用

for(var obj in window){
			try{
				if("getClass" in window[obj]){
					try{
						window[obj].getCla
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值