0%

app安全测试-平台和数据存储不当使用

说明

M1-平台使用不当

常见类型

糟糕的Web服务强化

  • 逻辑缺陷
  • 弱认证
  • 弱会话管理或没有会话管理
  • 会话固定
  • 使用GET方法传输的敏感数据

不安全的Web服务器配置

  • 默认内容
  • 管理界面
  • Web服务和支持移动的网站上的注入(SQL,XSS,Command)
  • 身份验证缺陷
  • 会话管理缺陷
  • 访问控制漏洞
  • 本地和远程文件包括

实践

  • 开发写代码的调试信息中,经常可能会有一些敏感的信息被打印出来,比如用jd-gui查看下如下内容:

image-20220401111712771

  • 既然是查看日志,完成可以采用直接如IDE+监控LogCat的方式

image-20220401112145099

  • 还有一种方式,其实就是adb logcat 过滤日志的方式,也是可行的

M2-不安全的数据存储

敏感数据未加密存储、本地文件未加密、WebView本地明文存储cookie等问题

常见类型

  • SQL数据库
  • 日志文件
  • XML数据存储或清单文件
  • 二进制数据存储
  • Cookie
  • 敏感数据存储到SD卡
  • SD卡上的数据可以被任意应用读取
  • 云同步

避免方式

  • URL缓存(请求和响应)
  • 键盘按键缓存
  • 复制/粘贴缓冲区缓存
  • 应用背景
  • 中间数据
  • 记录
  • HTML5数据存储
  • 浏览器cookie对象
  • 析数据发送给第三方

实践

  • 下载diva apk 解压后把apk文件安装到雷电模拟器上
  • 用模拟器打开apk

image-20220401160746121

image-20220401155946405

  • jd-gui 打开代码分析,发现使用了sharepreference 存信息到本地

image-20220401160501447

  • adb 进入到shell,找到shared_prefs,最终使用cat jakhar.aseem.diva_preferences.xml 查看到敏感的信息内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
adb shell
cd /data/data/jakhar.aseem.diva

osp:/data/data/jakhar.aseem.diva # ls
cache code_cache databases lib shared_prefs
osp:/data/data/jakhar.aseem.diva # cd shared_prefs
aosp:/data/data/jakhar.aseem.diva/shared_prefs # ls
jakhar.aseem.diva_preferences.xml
osp:/data/data/jakhar.aseem.diva # cat jakhar.aseem.diva_preferences.xml

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="user">hello</string>
<string name="password">word</string>
</map>
at jakhar.aseem.diva_preferences.xml <
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="user">hello</string>
<string name="password">word</string>
</map>