zoukankan      html  css  js  c++  java
  • [典型漏洞分享]exported Android content provider引发的隐私泄露问题

    YS android手机APP对外开放多余的content provider,可任意增、删、改和查images数据库表格,导致隐私泄露

    问题描述:

             YS android手机APP使用SQLITE数据库做数据存储,在android系统上可以通过content provider实现对SQLITE数据库的操作,通过drozer查看发现YS APP对外开放了content provider(经确认是不需要开放的),通过测试发现该provider对应images数据表,里面存放了用户名和用户保存在本地的图片信息等,由于该provider同时存在SQL注入漏洞以及读写权限,故通过该provider可任意操纵该数据表格,该provider为:

    com.xxx.filesmgt.ImageProvider

    测试步骤:

    1、  在手机上安装YS APPdrozer agent并启动。

    2、  启动drozer连接手机进入console界面。

    3、  查看对外开放的content provider的详细信息,如下图所示:

    clip_image002

    4、  查看存在SQL注入的URI(以下以红线的URI继续扩展测试),如下图:

    clip_image004

    5、  手动测试SQL注入,可以看到注入点、表格名称和相关字段,如下图所示:

    clip_image006

    6、  查看数据表格信息,如图:

    clip_image008

    clip_image010

    7、  向数据库中插入一条新记录(此时id4),如下图所示:

    clip_image012

    8、  重新查看,发现记录已成功插入,如图所示:

    clip_image014

    问题扩展:

             由于该content provider没有做权限控制,故在同一手机中的任意应用都可以通过该provider控制image数据表格,但目前该表格中没有太多的敏感数据,故风险为低,但其它恶意的程序仍然可以往该数据表格插入大量垃圾数据或篡改数据来致使程序无法正常运行,(获取还可以插入触发器后门)故仍然需要进行防范。

    解决建议:

    1、  关闭所有不需要对外开放的android四大组件。

    2、  对于需要开放的组件应设置合理的权限,如果只需要对同一个签名的其它开放content provider,则可以设置signature级别的权限。

    3、使用参数化查询防止SQL注入,参考《移动应用安全开发指南》。

  • 相关阅读:
    THINKPAD E40部分问题解疑(抛砖引玉……)
    VS 智能感知失效问题的解决方法
    Distinct()通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。
    dhl:阻止保存要求重新创建表的更改
    linq ef4.0 的联表 Include方法 代替联表操作
    l.cn 代码学习
    CSS解决未知高度垂直居中的问题
    Resharper 下载及使用方法
    网站大并发处理解决方案
    使用的 SQL Server 版本不支持数据类型“datetime2”解决办法
  • 原文地址:https://www.cnblogs.com/fishou/p/4189643.html
Copyright © 2011-2022 走看看