ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OWASP MASTG 参考应用 Finstergram 实战指南:Android 照片保险库的密码绕过与漏洞挖掘

OWASP MASTG 参考应用 Finstergram 实战指南:Android 照片保险库的密码绕过与漏洞挖掘 文档教程网络安全【免费下载链接】mastgThe OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.项目地址https://gitcode.com/gh_mirrors/ow/mastg点击查看免费下载导读Finstergram 是 OWASP MASTG 收录的一款 Android 安全教学应用外形是一个需要密码才能打开的照片保险库内部却埋设了多处常见漏洞。本文以 MASTG-APP-0016.md 描述的挑战设定为主线结合 MASTG 仓库中的测试用例、自动化规则与工具链系统讲解在非 root 手机上仅凭静态分析、广播与 Intent 攻击面突破应用密码、进入 secret gallery 的完整方法论。读完本文你将掌握从 AndroidManifest 审计、密码校验逻辑定位到广播接收器与组件间通信利用的实战套路。Finstergram为教学而生的伪安全照片保险库Finstergram 是一款刻意内置安全漏洞的 Android 应用其定位与 OWASP MASVSMobile Application Security Verification Standard的安全测试体系直接呼应。按 apps/index.md 的说明MASTG 所列参考应用可作为训练材料其中 MASTG apps 与 Crackmes 由 MAS 项目负责测试与维护Finstergram 正是其中之一。从功能上看Finstergram 扮演着照片保险库photo vault的角色用户需要输入密码才能打开其中的秘密相册secret gallery表面上防止手机上的其他使用者查看照片。然而正如文档所提示的这套安全机制并不像看起来那么可靠——它的存在价值恰恰是暴露本地密码保护这类方案的常见实现缺陷。挑战设定与攻击前提官方挑战给出了一个非常贴近真实威胁模型的场景你拥有一台未 root的手机且手机上已安装 Finstergram你可以正常解锁手机知道锁屏密码但不知道应用内的密码目标通过分析 Finstergram 的代码找出漏洞从而绕过密码访问 secret gallery。文档同时给出了四条官方提示的初始攻击思路这也是本文展开的四个核心攻击面检查 AndroidManifest 文件理解密码是如何被校验的调查广播broadcast机制探索如何利用 Intent。非 root 前提意味着无法直接读取/data/data/package下的私有目录因此攻击重心应放在应用自身暴露的组件、错误的密码实现逻辑以及可被外部触发的 IPC 通道上——这些恰恰是 Android 应用最常见的高危缺陷。起步构建应用并搭好分析工具链文档建议直接使用 Android Studio 打开并构建项目。构建产物是一个可安装的 APK后续所有分析都围绕这个 APK 展开。建议在动手前先备齐三件套工具工具用途仓库位置jadx / jadx-guiAPK 反编译为 Java 代码快速定位校验逻辑MASTG-TOOL-0018.mdIPC 组件枚举工具列出导出组件绘制攻击面地图MASTG-TOOL-0035.mdapktool / aapt反编译资源、查看二进制 AndroidManifest参见 tools/android 工具目录其中 MASTG-TOOL-0018jadx-gui是静态分析阶段的主力把 APK 拖入即可浏览反编译出的 Java 代码与 manifest 信息适合追踪密码校验函数与广播接收器的实现提示MASTG 工具目录tools/android、tools/generic对每个工具都提供了独立的安装与用法说明实战前可按需查阅。攻击面一先读 AndroidManifest.xml绘制组件攻击面地图AndroidManifest.xml 是应用对外暴露能力的地图。文档的第一条提示即指向它——因为所有可被外部应用触达的入口都必须在这里声明。对应 MASTG 的测试体系这一步主要落在 MASTG-TEST-0029.mdIPC 组件测试与 MASTG-TEST-0024.md权限测试上。审计清单在 manifest 中重点查找以下模式android:exportedtrue的组件Activity、Service、Receiver 一旦导出其他应用即可直接调用。即使未显式声明只要组件内定义了intent-filterexported也会被系统默认置为true——这是最容易被忽视的导出方式详见 MASTG-TEST-0029.mdintent-filter与自定义 action/scheme这决定了外部应用可以构造什么样的 Intent 来触发目标组件android:permission缺失导出组件若不声明权限等于向全设备应用敞开大门android:debuggabletrue可调试应用允许通过run-as访问私有数据目录android:allowBackuptrue允许通过 adb backup 提取应用数据是非 root 设备上绕过文件系统沙箱的经典路径自定义权限与危险权限声明权限声明过宽同样扩大攻击面参见 MASTG-TEST-0024.md。MASTG 测试文档给出了一段典型的脆弱广播接收器声明取自 MASTG 测试套件中的 Android Insecure Bank 示例模式可直接对照 Finstergram 的 manifest 检查receiver android:exportedtrue android:namecom.android.insecurebankv2.MyBroadCastReceiver intent-filter action android:nametheBroadcast / /intent-filter /receiver这类exportedtrueintent-filter的组合意味着任何应用都能向该 receiver 发送匹配的广播。用自动化规则辅助扫描MASTG 仓库的 rules 目录维护了一批 YAML 格式的静态扫描规则可直接把上述审计点脚本化mastg-android-deeplink-autoverify-missing.yml 与 mastg-android-deeplink-unvalidated-parameter.yml深链参数未校验mastg-android-implicit-intent-internal-communication.yml 与 mastg-android-implicit-intent-leaking-extras.yml隐式 Intent 泄漏数据mastg-android-content-provider-exported.ymlContent Provider 被导出mastg-android-debuggable-flag.yml 与 mastg-android-backup-manifest.yml可调试与备份开关。这些规则对应的正是 Finstergram 这类教学应用最容易埋雷的位置可以作为静态分析阶段的自动化校验清单。攻击面二定位密码校验逻辑——保险库密码从哪里来、怎么比文档的第二条提示是理解密码如何被校验。这一步要把 manifest 中发现的入口与代码逻辑串起来用 jadx-gui 打开 APK先看 manifest 中声明的入口 Activity通常就是启动页面追踪密码输入框对应的 Activity/View 与点击事件处理函数顺着校验函数向下找密码是硬编码在代码里还是存在SharedPreferences、SQLite 数据库或者被某个加密/哈希算法加工后比较重点观察比较方式明文equals、硬编码哈希值、还是依赖某个可被绕过的辅助函数。常见的教学级漏洞模式包括密码以明文常量写死在 smali/Java 代码中密码存于可备份的SharedPreferences校验逻辑虽然做了加密但密钥与密文一起打包在 APK 内——反编译后密钥唾手可得。这些模式分别对应 MASTG 的存储与密码学测试章节tests/android/MASVS-STORAGE 与 tests/android/MASVS-CRYPTO。注意Finstergram 的具体校验实现细节不在本仓库内上述是 MASTG 方法论层面的排查路径最终结论必须以你反编译得到的实际代码为准。攻击面三广播接收器——向保险库发送一条伪造广播文档的第三条提示是调查广播机制。广播是 Android IPC 中最容易被忽略的攻击面一个exported的 receiver 可以被任何应用触发如果 receiver 的onReceive内部还执行了敏感操作解锁、改密码、发短信、读写数据就等于给了攻击者一条远程指令通道。按照 MASTG-TEST-0029.md 的广播测试方法排查分三步看 manifest找出所有receiver元素检查android:exported与intent-filter中的 action搜源码搜索sendBroadcast、sendOrderedBroadcast、sendStickyBroadcast以及registerReceiver动态注册的 receiver 同样危险确认广播中是否携带敏感数据动态验证用外部应用或 adb 工具向目标 receiver 发送构造好的广播观察onReceive是否被执行了危险逻辑。该测试文档中的示例展示了 receiver 内部读取SharedPreferences、解密密码并向外发送短信的典型脆弱实现——这与照片保险库场景高度相似一个导出 receiver 如果承担了解锁/重置密码职责那么一条广播即可完成绕过。防御侧同样适用于你在审计其他应用时的评判标准应用内自用的广播应改用LocalBroadcastManager限制接收范围sendBroadcast时应指定 receiver 权限或显式包名避免广播被第三方应用接收或伪造。攻击面四利用 Intent 驱动导出组件文档的第四条提示是探索 Intent 的利用方式。Intent 是 Android 组件间通信的载体攻击者可以从自己的恶意应用中构造 Intent显式或隐式地启动目标应用的导出组件显式 Intent直接指定组件类名若该组件exportedtrue即可被外部启动隐式 Intent通过action/data/scheme匹配intent-filter这一层与Deep Link高度重合——详见 MASTG-TEST-0028.md深链测试Extra 传递通过putExtra向目标组件传递参数若组件未校验输入可能触发未授权操作对应规则 mastg-android-implicit-intent-leaking-extras.yml。实操中建议配合 MASTG-TOOL-0035IPC 组件枚举工具见 MASTG-TOOL-0035.md一次性列出所有导出的 Activity / Service / Receiver / Provider然后逐个尝试哪些组件可以不经过密码直接进入相册界面哪些组件接收外部参数并做出危险响应adb shell am start -n package/component与am broadcast是快速触达这些组件的最短路径。攻击面五别忘了内容提供者与其他 IPC除 Activity 与 Receiver 外导出的 Content Provider也是非 root 设备上的高价值目标。若 Finstergram 将照片元数据或密码信息存放在 Provider 中且exportedtrue攻击者即可通过content://URI 直接读写甚至触发目录遍历读取沙箱内文件——详见 MASTG-TEST-0007.mdIPC 数据暴露测试与规则 mastg-android-content-provider-exported.yml。攻击路线图从静态到动态的系统化推进综合上述攻击面针对 Finstergram 的完整进攻路线可以归纳为五步清单化用 MASTG-TOOL-0035 枚举导出组件结合 manifest 绘制攻击面清单静态深挖用 jadx-gui 定位密码校验、receiver、intent 处理逻辑找出可疑入口与硬编码凭证动态验证在非 root 手机上通过am start/am broadcast或自写恶意伴生应用逐个触发候选入口观察是否能绕过密码进入 secret gallery数据侧路若应用开启了备份尝试adb backup提取并解析应用数据对应 mastg-android-backup-manifest.yml收尾利用将可行的触发方式固化为可复现的利用步骤验证确实能展示 secret gallery 内容。总结从 Finstergram 到真实的 Android 安全测试Finstergram 的价值在于它把本地密码保护这一常见需求中几乎所有的错误实现方式浓缩到了一个应用里导出的组件、可伪造的广播、可被逆向的校验逻辑、可被外部 Intent 驱动的入口。完成挑战的关键不是某一个魔法漏洞而是把 manifest 当作地图、把 IPC 当作通道、把密码实现当作最终目标的系统化思路。这套思路可以直接迁移到真实世界的 Android 安全评估中审计任何应用时先画导出组件地图再追敏感逻辑最后用动态手段验证——MASTG 的 tests/android 测试套件与 rules 自动化规则正是为这一流程准备的。若想继续练手仓库中的 Crackmes 系列如 Crackmes/Android 下的分级关卡提供了难度递进的同类挑战。延伸阅读本文涉及的测试方法细节可深入阅读 MASTG-TEST-0029.md、MASTG-TEST-0028.md 与 MASTG-TEST-0007.md工具安装与用法见 MASTG-TOOL-0018.md 与 MASTG-TOOL-0035.md。赞分享文档教程网络安全【免费下载链接】mastgThe OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.项目地址https://gitcode.com/gh_mirrors/ow/mastg点击查看免费下载相关推荐OWASP MASTG 参考应用 iGoat-Swift 详解iOS 漏洞练习与逆向测试实战指南OWASP MASTG 参考应用 iGoat Swift 详解iOS 漏洞练习与逆向测试实战指南 导读 iGoat Swift 是 OWASP 出品的 Sw文档教程网络安全OWASP ZAP实战指南从零基础到漏洞挖掘专家OWASP ZAP实战指南从零基础到漏洞挖掘专家 Web安全测试工具、自动化漏洞扫描、渗透测试指南是现代Web应用安全体系的核心组成部分。OWASP ZAP网络安全文档教程Guccang/Blog-AIAssistant漏洞挖掘与修复实战指南Guccang/Blog AIAssistant漏洞挖掘与修复实战指南 引言安全漏洞的隐形威胁 在数字化时代个人博客系统承载着用户的隐私数据、知识资产和情后端前端人工智能大模型AI AgentRAGMCP 服务上一篇5分钟解决HTML转Word格式乱码html-to-docx终极实战指南下一篇缠论分析的革命性突破通达信自动识别中枢与笔段的一站式解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表