前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android App漏洞学习(一)

Android App漏洞学习(一)

作者头像
信安之路
发布2018-08-08 11:37:27
9480
发布2018-08-08 11:37:27
举报
文章被收录于专栏:信安之路信安之路

DIVA(Damn insecure and vulnerable App)是一个故意设计的存在很多漏洞的Android app,目的是为了让开发、安全工程师、QA等了解Android app常见的一些安全问题,类似dvwa,也可以把它当成一个漏洞演练系统。下载地址:

代码语言:javascript
复制
http://www.payatu.com/wp-content/uploads/2016/01/diva-beta.tar.gz

测试环境

1,安装JDK,很多工具需要用到Java环境;

2,安装Android开发工具(ADT,Android studio),下载地址:

代码语言:javascript
复制
https://developer.android.com/studio/index.html

3,安装APKtool、Drozer、dex2jar、JD-GUI

Apktoolss下载地址:

代码语言:javascript
复制
https://bitbucket.org/iBotPeaches/apktool/downloads

Drozer下载地址:

代码语言:javascript
复制
https://labs.mwrinfosecurity.com/tools/drozer/

Dex2jar下载地址:

代码语言:javascript
复制
https://sourceforge.net/projects/dex2jar/?source=typ_redirect

JD-GUI下载地址:

代码语言:javascript
复制
http://jd.benow.ca/

或者使用Androl4b虚拟机,下载地址:

代码语言:javascript
复制
http://pan.baidu.com/s/1pL1wewV 密码:drgj

PART 1 不安全的日志输出

该问题主要是由于app代码中将敏感信息输出到app的logcat中,查看app记录的logcat,可以使用如下命令:

1.adb logcat

2.输入用户凭证,观察日志输出。

3.源码中:Log.e()

可以看出用户输入的内容被输出到了日志中,看看具体的漏洞代码,用JD-GUI打开LogActivity.class文件,相关代码如图:

PART 2 硬编码1 (class源文件)

很多开发小伙伴在开发app的时候,明明是可以用可变变量的,但是由于没有相关安全开发意识,使用了硬编码的方式,导致存在一定的安全风险。具体有关硬编码的定义可以参考百度,开发人员在开发的过程中应该尽量避免使用硬编码。先看看问题2涉及到的代码HardcodeActivity.class,JD-GUI打开,相关代码如下:

查看HardcodeActivity.class:

攻击者只需要在app中输入秘钥vendorsecretkey就可以访问成功,如图:

PART 3 不安全的存储1(shared_prefs/xxx.xml)

不安全的数据存储也是App常见的安全问题之一,主要有三种方式:

1,将敏感数据保存到配置文件中;

2,将敏感数据保存在本地的sqlite3数据库中;

3,将敏感数据保存在临时文件或者sd卡中。

SharedPreferences类存储的数据会以.xml的形式存储在

代码语言:javascript
复制
/data/data/apppackagename/shared_prefs

目录下。如图:

代码语言:javascript
复制
cd /data/data/jakhar.aseen.diva/shared_prefs

PART 4 不安全的存储2(databases/xxx.db)

用户的敏感信息存储到本地的数据库中,一般app对应的数据库目录:

代码语言:javascript
复制
/data/data/apppackagename/databases

本例中是:

代码语言:javascript
复制
/data/data/jakhar.aseem.diva/databases

如图:

代码语言:javascript
复制
cd /data/data/jakhar.aseen.diva/databases

PART 5 不安全的存储3(临时文件)

代码语言:javascript
复制
cd /data/data/jakhar.aseen.diva/

PART 6 不安全的存储4(SD卡)

存储在sd卡中,漏洞代码片段:

总结

欢迎大家留言与我交流。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 测试环境
  • PART 1 不安全的日志输出
  • PART 2 硬编码1 (class源文件)
  • PART 3 不安全的存储1(shared_prefs/xxx.xml)
  • PART 4 不安全的存储2(databases/xxx.db)
  • PART 5 不安全的存储3(临时文件)
  • PART 6 不安全的存储4(SD卡)
  • 总结
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档