freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Drozer - Android APP安全评估工具(附测试案例)
2014-02-21 18:09:58

Drozer 原名 mercury,是一款不错的 Android APP 安全评估工具。现在有社区版/专业版两个版本。   

具体的使用说明可以参考https://www.mwrinfosecurity.com/system/assets/559/original/mwri_drozer-users-guide_2013-09-11.pdf 

测试案例

某 Android APP 由于 Content Provider 的控制不严,导致可读写 APP 私有的数据库,具体的步骤和思路:

1、查找 APP 完整的包名字(某些命令只能输入完整的包名才能执行):

dz>
run app.package.list -f
younicom.snda.youni

2、列举出 APP 的详细信息

run app.package.info -a  com.snda.youni

1.png

3、APP 攻击面分析,分析 Activity/Broadcast Receiver/Content Provider/Service 是否能被其他的的应用程序调用

run app.package.attacksurface com.snda.youni

2.png

4、列举 Content Provider 的信息(可以看到 Read/Write 的 Permission 都是 null)

run app.provider.info -a com.snda.youni

 (第一次测试的 APP 版本可以修改数据库) 

3.png

(修复之后再查看)

4.png

5、有暴露的 Provider,可以用 drozer 扫描可用的 URI(drozer 是否是通过源码静态扫描的方式发现这些 URI?通过反编译 dex->jar->class 可以查找到这些 URI)

run app.provider.finduri com.snda.youni

5.png

6、通过分析源代码可知 DataStructs 对应的是本地数据库,URI 的结构:

content://包名. 数据库/表名

(URI 不一定指向数据库,也可能是 xml 文件)

可以先在 PC 上用 sqlite broswer 分析.db 文件,例如 contacts 表中有一个 phone_number 字段;有了这些信息搜集,就可以利用 drozer 命令+参数查看数据库内容。可以看到该 APP 默认的几条内容:

6.png

7、preferences 表存储的是当前用户的一些基本信息,查询当前手机号: 

7.png

8、可以利用 drozer 直接修改数据库 

8.png

9、漏洞利用。结合该 APP 的一个功能:通过手机号转账给他人。假设 Max 安卓手机里装了该 APP,Coco 也申请了这个 APP 的账号并且在 Max 的联系人名单中,ID 就是 Coco 的手机号,APP 显示给 Max 是昵称。Max 的手机不小心中了木马,木马通过上述漏洞修改了 APP 私有数据库(Contacts 表)中 Coco 的手机号,改为攻击者的手机号。Max 通过 APP 的转账功能给 Coco 转账,就转到攻击者的账户中。实际测试通过。

10、以上漏洞利用只是一个攻击思路,Content Provider 的暴露应该可以带来更大的危害。 

11、Content Provider 也可能造成本地 SQL 注入漏洞,通过在参数中提交特殊字符,触发数据库引擎的报错: 

10.png

本文作者:, 转载请注明来自FreeBuf.COM

被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦
收入专辑