APP漏洞之WebView File域同源策略绕过漏洞

i春秋作家:MAX丶

基本知识Android架构

  • Kernel内核层 
    漏洞危害极大,通用性强 
    驱动由于多而杂,也可能存在不少漏洞
  • Libaries系统运行库层
  • FrameWork应用框架层 
    提供一系列的服务和API的接口

    • 活动管理器
    • 内容提供器
    • 视图
    • 资源管理器
    • 通知管理器
  • Application应用层

    • 系统应用 
      主屏幕Home、联系人Contact、电话Phone、浏览器Browser
    • 其他应用 
      开发者使用应用程序框架层的API实现的程序

Andoroid常用组件

  • Acitivity活动
  • Service服务
  • BroadcastRecviver广播接收器
  • ContentProvider内容提供器

Android App常见漏洞     (OWASP Mobile Top 10)平台使用不当

  • 概述 
    平台功能的滥用,或未能使用平台的安全控制。如Intent误用、权限误用等

  • 风险 
    很广泛,可能涉及移动平台各个服务

  • 举例 
    iOS系统中,将密码数据存放在本地文件而没有存放在密钥链中,导致可以从伪加密的备份数据中读取 
    Android系统中,Intent使用不当导致恶意用户劫持修改intent的内容,以原进程的身份权限执行任意动作

  • 不安全的数据存储

  • 不安全的通信

典型漏洞及挖掘方法数据存储漏洞

  • 数据文件或目录

    • SharedPreferences 
      data/data/程序包名/shared_prefs/*.xml
      • 创建配置文件时没有使用MODE_PRIVATE模式,导致其他程序可以读取配置文件
      • 明文存储,而root用户可读,导致敏感数据泄露
    • SQLiteDatabases 
      data/data程序包名/database/*.db

      • 创建数据库时没有使用MODE_PRIVATE模式
    • InternalStorage 
      data/data/程序报名/files/*

      • MODE_PRIVATE
      • 明文存储
    • ExternalStorage 
      /mnt/sdcard/*
      • 明文存储

  • 检测方法
    • 浏览/data/data/包名目录下的各个文件和目录,检查是否存在others用户可读的文件
    • 检查配置文件、数据库等是否存在明文敏感信息
  • 挖掘方法
    • 代码检测 
      检查openFileOutput、getSharedPrefreences、openOrCreateDatabase等函数的mode参数是否为MODE_PRIVATE(0×0000)

数据通信漏洞

  • 使用HTTP等明文协议将敏感信息传送至服务端
    • 通过局域网嗅探、恶意公共WIFI、恶意代理服务、DNS劫持等手段捕获明文通信,产生中间人攻击
  • SSL证书弱校验

    • APP中缺乏对SSL证书的校验 
      客户端中应该实现X509TruestManager类,包括checkServerTrusted\checkClientTrusted\getInstance三个方法
    • 证书校验失败会导致异常,然后由应用程序对证书校验异常进行处理
    • 未对服务器证书校验会导致TLS中间人攻击 
      使用HttpsURLConnection时,实现自定义HostnameVerifier过程中未对主机名做验证,则默认不检查证书域名与站点名是否匹配。或者在设置HttpsURLConnection的HostnameVerifier时,将其设为ALLOW_ALL_HOSTNAME_VERIIER则接受所有域名.
    • 攻击方法
      • 开启Fiddler的HTTPS解析功能,生成并导出自签名证书,安装到手机中
      • 开启Fiddler代理,并允许远程主机连接该代理
    • 挖掘方法
      • 搜索.method public checkServerTrusted
      • 定位.method和end method
      • 检查是否存在return-void
      • 同理检查verify(String, SSLSession)的返回值是否恒为True、X509HostnameVerifier的参数是否为ALLOW_ALLHOSTNAME_VERIFIER

  • SSL证书强校验 
    可能通过Xp、Patch等方法绕过

组件暴露漏洞

  • Android:exported是四大组件中都有的一个属性,用来表示是否支持其他应用调用当前组件
  • 如果有intent-filter,默认值为true;反之默认则为false
  • exported导出组件的权限控制
  • 绕过认证
    • activity暴露后被第三方调用,可能在没有密码的情况下登录/重置密码
  • 敏感信息泄露
    • recviver暴露后被第三方启动,可能查看到调试等信息中包含的敏感信息
  • 越权行为

    • 低权限程序通过调用高权限程序暴露的组件,执行高权限动作
  • 挖掘方法

    • 查看AndroidManifest.xml
    • 通过drozer的attacksurface工具进行安全评估

弱加密漏洞

  • 密码硬编码 
    反编译、root查看等可以取得
  • AES/DES弱加密 
    ECB模式容易受到分析或重放攻击

WebView

主要包括三种漏洞:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值