针对小程序从登录到退出全流程进行多维度漏洞测试,以下是关键测试点和攻击场景分析:
一、身份认证阶段
- 暴力破解攻击
- 测试登录接口是否无验证码/频率限制
- 尝试弱密码字典攻击(Admin/123456等)
- 验证错误提示是否泄露信息(如”用户不存在”)
- 认证绕过漏洞
- 修改登录请求状态码(如200强行跳转)
- 删除/伪造身份令牌(JWT/OAuth Token)
- 尝试空密码、SQL注入(
' or 1=1--
)
- 敏感信息泄露
- 用户账号枚举(不同错误响应区分)
- 登录错误响应体暴露路径/版本信息
二、会话管理阶段
- 会话固定攻击
- 强制用户使用已知SessionID登录
- Token安全缺陷
- JWT弱密钥破解(通过jwt_tool)
- Token无过期时间或刷新机制失效
- Token传输未使用HTTPOnly/Secure Cookie
- 跨设备会话复用
- 验证单一会话有效性(多地登录是否踢出)
三、业务功能交互
- 数据越权访问
- 横向越权:修改URL参数访问他人数据(
/order?id=10001→10002
) - 纵向越权:普通用户访问管理接口(
/admin/deleteUser
)
- 业务逻辑漏洞
- 重复提交(如多次领取优惠券)
- 状态篡改(0元支付改订单金额)
- 流程跳过(直接访问支付完成页)
- 输入输出验证
- XSS注入:在个人信息栏插入
<script>alert(1)</script>
- SQL注入:搜索框输入
' sleep(5)--
- 文件上传漏洞:上传含恶意代码的.jpg.php文件
四、本地客户端风险
- 反编译审计
- 使用wxapkg解包工具检查硬编码密钥
- 检查网络请求是否明文传输敏感数据
- 本地存储泄露
- 扫描
wx.setStorageSync
存储的token/手机号 - Android备份文件分析(
*.db
文件)
- 全局接口滥用
- 恶意调用
wx.requestPayment
引导钓鱼支付 wx.getLocation
未授权获取位置
五、退出与断开会话
- 注销机制缺陷
- 退出后旧Token仍可访问API
- 客户端未清除本地Token/缓存数据
- 会话超时失效
- 验证无操作30分钟后是否强制重新认证
- 网络中断后会话持续有效时间
六、补充测试项
测试方向 | 具体案例 |
---|---|
中间人攻击 | 未启用SSL Pinning导致CA劫持 |
权限控制缺失 | 未登录用户直接访问个人中心页 |
CSRF攻击 | 伪造退出请求强制用户下线 |
二维码劫持 | 登录二维码可重放使用 |
© 版权声明
文章版权归作者所有,转载请标明出处。
THE END
- 最新
- 最热
只看作者