0Pricing
Ethical Hacking Academy · 课时

不安全的存储与通信

常见缺陷

不安全的存储与通信 是 CoddyKit 上的免费 Ethical Hacking Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ethical Hacking Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ethical Hacking Academy 课程共包含 4 节课。

两个经典漏洞

最常见的两类移动端漏洞是不安全的数据存储和不安全的通信。它们都出现在 OWASP 移动端十大风险中。

这两类问题都源于开发者过度信任设备,以及对数据保护不当。

应用在哪里存储数据

应用会将数据保存在 /data/data/<package>/ 中:

  • SharedPreferences:XML 键值文件。
  • SQLite 数据库。
  • 内部和外部文件。

渗透测试人员会逐一检查这些位置,查找以明文存储的机密信息。

/data/data/com.app/shared_prefs/prefs.xml

明文机密信息

一种常见漏洞是在 SharedPreferences 或数据库中以明文存储密码、令牌或 PII。

在已获取 Root 权限的设备上,攻击者可以通过备份或使用 Objection 直接读取这些数据。敏感数据应当加密,或存放在安全硬件中。

<string name="auth_token">eyJhbGci...plaintext...</string>

外部存储风险

写入外部存储(SD 卡区域)的数据,在旧版 Android 上可被所有用户读取,或可被任何获得存储权限的应用访问。

将敏感文件保存在那里会使其暴露给其他应用。写入磁盘的日志也会造成类似泄露。

存储机密信息的正确方式

安全选项包括 Android Keystore(密钥存储在硬件中,永远不会暴露给应用)和 EncryptedSharedPreferences。

Keystore 可以在不泄露密钥的情况下执行加密操作,这比在代码中硬编码密钥安全得多。

不安全的通信

不安全的通信是指数据在未得到适当保护的情况下传输。最糟糕的情况是明文 HTTP,网络上的任何人都可以读取或修改流量。

所有敏感流量都必须使用 HTTPS/TLS。

http://api.app.com/login   # cleartext, credentials exposed

拦截流量

要检查流量,请将设备的流量转发到 Burp Suite 等拦截代理。您需要在设备上安装 Burp 的 CA 证书,才能读取 HTTPS 流量。

这样可以发现 API 端点、参数,以及传输中的任何敏感数据。

证书固定

构建良好的应用会使用证书固定,拒绝除自身证书以外的任何证书,从而阻止基本代理。

正如您所学,使用 Frida 绕过 SSL 固定可以禁用这一机制,让您仍然能够拦截流量并评估实际的 API 安全性。

弱 TLS 与验证

即使使用 HTTPS,也可能存在以下漏洞:信任所有证书、接受已过期的证书,或禁用主机名验证。这些做法通常是为了方便开发而临时加入的。

即使存在 TLS,这些问题仍会让攻击者实施中间人攻击。

备份与日志

另外还有两种泄露途径:

  • android:allowBackup="true" 允许任何能够访问设备的人通过 adb backup 提取应用数据。
  • 详细的 logcat 输出可能会打印令牌或 PII。

在生产环境中,这两项都应当禁用或进行脱敏处理。

adb backup -f data.ab com.app

剪贴板与屏幕截图

有两种经常被忽视的泄露途径:将敏感数据复制到剪贴板(在旧版 Android 上可被其他应用读取),以及应用转入后台时系统截取的屏幕截图。

银行应用会使用 FLAG_SECURE 窗口标志来缓解这一问题,该标志会阻止屏幕截图和任务切换器预览。

快速检查

回想一下,在 Android 上保存加密密钥最安全的位置。

回顾

现在您已经了解了不安全的存储和通信:

  • 应用会在 SharedPreferences、数据库、外部存储和日志中泄露明文机密信息。
  • 将机密信息存储在 Android Keystore 或 EncryptedSharedPreferences 中。
  • 不安全的通信包括从明文 HTTP到弱 TLS 验证的各种情况;使用 Burp 进行拦截。
  • 使用 Frida 绕过证书固定;禁用 allowBackup 并对日志进行脱敏。

您已完成移动应用渗透测试课程。

常见问题解答

「不安全的存储与通信」课时是免费的吗?

是的 — 「不安全的存储与通信」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ethical Hacking Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ethical Hacking Academy 课程共包含 4 节课。

「不安全的存储与通信」这节课中我会学到什么?

常见缺陷 你通过在浏览器中直接运行的动手代码来练习 Ethical Hacking Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Ethical Hacking Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Ethical Hacking Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「不安全的存储与通信」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Ethical Hacking Academy 课中编写并运行代码吗?

能。每节 Ethical Hacking Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Android 应用结构
  2. APK 静态分析
  3. 使用 Frida 进行动态分析
  4. 不安全的存储与通信
← 返回 Ethical Hacking Academy