移动应用(APP+小程序)

[TOC]

移动应用(APP+小程序)

一、APP应用安全模块

1. 原生开发APP

  • 核心概念:基于系统原生技术栈开发(安卓:Java/Kotlin;iOS:Objective-C/Swift),直接调用系统控件与API,性能最优
  • 技术特点:功能完整性强、用户体验好,依赖系统原生生态;但开发成本高,跨平台需单独适配
  • 演示配置
  • 安全影响:易成为逆向分析目标,流量传输安全依赖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内置浏览器加载网页内容
  • 技术特点:开发周期短、成本低、维护简单;但性能差、功能有限,易卡顿,完全依赖网络
  • 演示配置
  • 安全影响:安全风险与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防护与小程序权限控制
  • 演示配置
  • 安全影响:同时面临小程序与Web安全风险,WebView与小程序的通信接口易成为攻击入口
  • 攻击思路
    • H5漏洞利用:针对WebView内的H5页面发起XSS、CSRF攻击,篡改页面内容
    • 通信接口劫持:拦截WebView与小程序的postMessage通信,篡改传递的参数(如用户身份、操作指令)
    • 域名绕过:寻找小程序域名白名单配置漏洞,诱导加载恶意H5页面,窃取用户信息
    • 本地存储读取:通过WebView漏洞访问小程序本地缓存的敏感数据(如token、Cookie)

4. H5+Vue开发小程序

  • 核心概念:基于Vue框架开发H5页面,通过工具(如HBuilderX)打包为小程序,兼顾跨平台与开发效率
  • 技术特点:组件化开发、复用性强,适配多小程序平台;但依赖Vue框架版本,易受前端漏洞影响
  • 演示配置
  • 安全影响: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/越狱检测、反调试保护,评估防护强度