小程序渗透测试实战(全流程)

小程序渗透全流程:抓包、包反编译、源码分析、接口/越权/注入/支付/云函数测试、WebView 漏洞与报告,完整方法与工具。

写在前面:合法学习边界

小程序渗透只允许在授权目标进行。抓取用户数据、篡改支付等可能违反平台规则与法律。

一、小程序的安全模型

小程序 = “微信容器内的前端 + 后端接口”。前端代码会被下载到本地(加密 wxapkg 包),后端接口才是真正的攻击面。

1
关键点:前端包可获取 → 后端接口必须服务端校验

二、渗透全流程

1
2
3
4
5
6
7
8
9
1. 信息收集
2. 抓包(见《小程序抓包配置实战》)
3. 获取小程序包并反编译
4. 源码分析
5. 接口测试(未授权/越权/注入/逻辑)
6. 支付逻辑测试
7. 云函数/云开发测试
8. WebView 与客户端漏洞
9. 汇总报告

三、步骤 1:信息收集

1
2
3
小程序名称、AppID、主体公司
搜索小程序相关域名、接口、第三方组件
用 whois/备案信息找更多资产

四、步骤 2:抓包

按《小程序抓包配置实战》操作,抓到接口后先摸清:

1
2
有哪些接口、参数、鉴权方式(token/cookie)
登录态从哪来

五、步骤 3:获取并反编译小程序包

获取 wxapkg

1
2
安卓:/data/data/com.tencent.mm/.../appbrand/pkg/ 找到 .wxapkg
模拟器/root 后直接拷贝

解密 + 反编译

1
2
3
工具:CrackMinApp / wxappUnpacker / 小程序反编译系列
步骤:解密 wxapkg → 反编译出 JS/JSON/WXML
注意:新版可能加了分包、加密,需对应版本工具

六、步骤 4:源码分析(重点)

1
2
3
4
5
接口地址与参数(app.js / request 封装)
AppID / AppSecret(泄露则可调服务端 API)
加密/签名逻辑(AES key、sign 算法)
业务逻辑(权限、支付、提现)
第三方 SDK / 云开发配置

七、步骤 5:接口测试

把源码里挖到的接口全部测一遍:

1
2
3
4
5
未授权访问(去掉 token 试试)
越权(改 id/uid)
SQL 注入 / 命令注入
逻辑漏洞(分页、枚举、状态修改)
接口限流/防刷

八、步骤 6:支付逻辑

1
2
3
4
5
改 amount/price(改 0.01/负数)
改数量导致金额异常
支付回调重放
优惠券/积分重复领取
(支付金额必须服务端重算才算安全)

九、步骤 7:云函数 / 云开发

1
2
3
微信云开发(cloud function)
检查云函数权限、密钥、可注入点
云环境 ID 泄露 → 尝试越权调用

十、步骤 8:WebView 与客户端

1
2
3
4
WebView 远程调试
url 跳转漏洞(任意跳转)
js 桥接(JSBridge)接口
深链(scheme)处理

十一、步骤 9:报告

1
2
按漏洞影响排序(支付/越权 > 信息泄露 > 逻辑)
给出验证步骤与修复建议

十二、检测与防御(蓝队)

1
2
3
4
5
服务端统一鉴权,不信任前端参数
支付金额服务端计算
敏感密钥不落前端包
接口限流与防刷
云函数权限最小化

十三、小结

小程序渗透是“Web 渗透 + 移动端抓包 + 源码审计”的组合。核心结论:前端包永远可拿,安全只能靠后端。把抓包、反编译、接口测试、支付逻辑四步走通,就是一个完整的小程序渗透项目。