移动应用(APP+小程序)
[TOC]
移动应用(APP+小程序)
一、APP应用安全模块
1. 原生开发APP
- 核心概念:基于系统原生技术栈开发(安卓:Java/Kotlin;iOS:Objective-C/Swift),直接调用系统控件与API,性能最优
- 技术特点:功能完整性强、用户体验好,依赖系统原生生态;但开发成本高,跨平台需单独适配
- 演示配置:
- 开发工具:IntelliJ IDEA(安卓原生)
- 演示项目:remusic项目源码
- 核心工具:NP管理器(http://normalplayer.top/)、HttpCanary(抓包,https://github.com/mingww64/HttpCanary-SSL-Magisk)
- 安全影响:易成为逆向分析目标,流量传输安全依赖SSL配置,逻辑漏洞需通过反编译挖掘
- 攻击思路:
- 反编译分析:用NP管理器、Apktool反编译APK,提取AndroidManifest.xml、配置文件,寻找硬编码密钥、接口地址、跳转逻辑
- 抓包绕过:针对SSL_PINNING(证书固定),通过Magisk加载HttpCanary证书、修改APP源码移除证书校验,捕获加密流量
- 逻辑漏洞挖掘:逆向业务逻辑(如支付、登录流程),寻找参数篡改点(如修改订单金额、跳过验证步骤)
- 动态调试:用IDA Pro、GDB附加APP进程,调试关键函数,破解加密算法(如AES、RSA密钥推导)
2. H5开发APP
- 核心概念:基于HTML5+CSS+JS开发,通过浏览器内核渲染页面,可多端复用(APP/浏览器/小程序)
- 技术特点:开发效率高、跨平台适配成本低;但性能弱于原生,依赖网络加载,功能受浏览器限制
- 演示配置:开发工具为HBuilderX(https://www.dcloud.io/),适合需分享传播的页面场景
- 安全影响:继承Web安全风险,同时受JS框架、API调用权限影响
- 攻击思路:
- Web漏洞利用:针对H5页面发起XSS、CSRF攻击,利用DOM注入篡改页面内容(如钓鱼弹窗)
- JS框架漏洞:挖掘Vue/React等框架的版本漏洞(如原型污染),执行恶意代码
- 本地存储窃取:通过APP沙盒遍历,获取localStorage、sessionStorage中存储的敏感数据(如token、用户信息)
- 接口未授权测试:拦截H5调用的后端API,尝试篡改参数、跳过登录认证访问核心接口
3. Flutter开发APP
- 核心概念:谷歌跨平台UI框架(Dart语言),直接操作硬件层渲染,体验接近原生
- 技术特点:跨平台一致性强、性能优于H5;但生态不完善,开发效率偏低,逆向难度高于H5
- 安全影响:编译后为原生二进制文件,逆向需针对性分析Dart字节码,加密逻辑易被动态调试
- 攻击思路:
- Dart字节码逆向:用Flutter Reverse Tool解析编译后的快照文件(snapshot),还原业务逻辑与加密函数
- 动态调试绕过:通过Frida注入脚本,Hook关键加密函数(如加密参数生成、证书校验),获取明文数据
- 依赖库漏洞:排查Flutter第三方依赖(如HTTP客户端、加密库)的已知漏洞,进行供应链攻击
- 权限滥用:检测APP是否过度申请系统权限(如存储、定位),通过权限劫持获取敏感数据
4. Web封装APP(Web App)
- 核心概念:”网站+APP壳”模式(如 Cordova、PhoneGap),本质是APP内置浏览器加载网页内容
- 技术特点:开发周期短、成本低、维护简单;但性能差、功能有限,易卡顿,完全依赖网络
- 演示配置:
- 封装平台:多豆云打包
- 源码程序:ShopXO(https://shopxo.net/)、OfCMS(https://www.ofcms.com/)
- 安全影响:安全风险与Web应用完全一致,APP壳仅提供载体,无额外防护能力
- 攻击思路:
- 核心Web漏洞测试:直接针对内置网页发起SQL注入、文件上传、路径穿越等常规Web攻击
- 壳层绕过:修改APP配置文件,让内置浏览器加载恶意网页,诱导用户输入敏感信息
- 本地文件访问:利用WebView文件访问权限漏洞,读取APP沙盒内的敏感文件(如配置、缓存)
- 接口劫持:拦截APP与网页的通信接口,篡改数据(如修改用户权限、伪造通知)
二、小程序应用安全模块
1. 小程序开发架构概述
- 核心概念:基于各平台生态的轻量级应用(主流:微信小程序,另有支付宝、百度、抖音等),支持原生开发、WebView开发、框架开发(如UniApp)、低代码开发
- 技术特点:无需安装、启动快,依赖平台API能力;开发门槛低,但受平台规则限制(如域名白名单、接口限制)
- 参考文档:微信小程序开发指南(https://mp.weixin.qq.com/s/dXTb0wk57-bLA3tUuvOFSw)
2. 原生开发小程序
- 核心概念:基于平台原生语法开发(微信:WXML+WXSS+JS),直接调用平台提供的组件与API
- 技术特点:性能稳定、适配性好,支持离线缓存;但跨平台性差,需单独适配不同小程序平台
- 安全影响:源码易被反编译,配置信息(如域名、APPID)易泄漏,API调用权限依赖平台审核
- 攻击思路:
- 反编译提取源码:用wxappUnpacker、小程序反编译工具,解压小程序包(.wxapkg),获取所有前端代码与配置
- 敏感信息挖掘:从源码中查找硬编码的API密钥、后台地址、未脱敏的用户数据
- 域名探测:解析源码中的域名白名单,测试关联域名的Web漏洞(如SQL注入、未授权访问)
- 平台API滥用:利用小程序开放平台API(如支付、分享),寻找参数篡改、权限绕过漏洞
3. WebView开发小程序
- 核心概念:小程序内置WebView组件,加载H5页面实现复杂功能,本质是”小程序壳+H5内容”
- 技术特点:复用H5开发成果,开发效率高;但性能受WebView限制,安全依赖H5防护与小程序权限控制
- 演示配置:
- 封装平台:多豆云打包
- 源码程序:ShopXO(https://shopxo.net/)、OfCMS(https://www.ofcms.com/)
- 安全影响:同时面临小程序与Web安全风险,WebView与小程序的通信接口易成为攻击入口
- 攻击思路:
- H5漏洞利用:针对WebView内的H5页面发起XSS、CSRF攻击,篡改页面内容
- 通信接口劫持:拦截WebView与小程序的postMessage通信,篡改传递的参数(如用户身份、操作指令)
- 域名绕过:寻找小程序域名白名单配置漏洞,诱导加载恶意H5页面,窃取用户信息
- 本地存储读取:通过WebView漏洞访问小程序本地缓存的敏感数据(如token、Cookie)
4. H5+Vue开发小程序
- 核心概念:基于Vue框架开发H5页面,通过工具(如HBuilderX)打包为小程序,兼顾跨平台与开发效率
- 技术特点:组件化开发、复用性强,适配多小程序平台;但依赖Vue框架版本,易受前端漏洞影响
- 演示配置:
- 开发工具:HBuilderX(https://www.dcloud.io/)
- 参考文档:https://mp.weixin.qq.com/s/SIWBZv_vZ6AGtHrl3hpR9A
- 安全影响:JS框架漏洞、API接口未授权、前端逻辑篡改风险突出
- 攻击思路:
- Vue框架漏洞:针对旧版本Vue的原型污染、XSS漏洞,构造恶意 payload 注入页面
- 接口枚举测试:遍历源码中的API接口(如
/api/user/info、/api/order/list),测试未授权访问、参数注入 - 前端逻辑篡改:用浏览器开发者工具(或小程序调试工具)修改Vue数据模型(如修改用户权限标识、隐藏风控提示)
- 源码泄漏挖掘:通过小程序反编译,获取Vue源码中的路由配置、敏感函数(如加密、验证逻辑)
三、通用安全测试方法
1. 反编译溯源
- 核心流程:获取APP安装包(APK/IPA)或小程序包(.wxapkg)→ 用反编译工具解析 → 提取源码、配置文件、硬编码信息 → 定位攻击入口(如密钥、接口、逻辑漏洞)
- 关键工具:APKTool(APP反编译)、wxappUnpacker(小程序反编译)、NP管理器(手机端快速反编译)
2. 流量抓包分析
- 核心流程:配置代理(如Burp Suite、HttpCanary)→ 绕过SSL校验 → 捕获APP/小程序的网络请求 → 分析接口参数、加密方式 → 测试参数篡改、未授权访问
- 绕过技巧:Magisk加载根证书(突破SSL_PINNING)、修改APP源码移除证书校验、小程序开启调试模式抓包
3. 核心测试维度
- 敏感信息泄漏:检查源码、配置文件、日志中是否存在密钥、账号密码、接口地址等
- 接口安全:测试API的认证、授权、参数校验,挖掘SQLi、命令执行、越权访问
- 逻辑漏洞:针对登录、支付、订单、权限变更等流程,寻找绕过、篡改、重放漏洞
- 客户端防护:检测是否存在SSL_PINNING、root/越狱检测、反调试保护,评估防护强度
