逻辑漏洞
逻辑漏洞
中心主题:逻辑漏洞
1. 越权
分类
- 水平越权:同一权限等级用户之间相互越权(修改其他用户数据)
- 垂直越权:低权限用户越权访问高权限功能
原理
- 后端未进行严格的权限校验,仅在前台做界面限制
- 依赖客户端传参判断身份,而非服务器端会话校验
- 不安全的直接对象引用(Insecure Direct Object Reference)
检测方法
- 修改 URL/参数中的 ID、订单号、用户ID 等
- 使用低权限账号尝试访问高权限接口
- 遍历其他用户的资源 ID
修复建议
- 每次请求必须校验当前用户身份与目标资源归属关系
- 使用 Session/Token 绑定用户身份
- 对所有敏感操作添加服务器端权限判断
- 避免直接暴露可预测的 ID(如自增 ID),改用 UUID 或加密 ID
- 对输入参数进行严格白名单过滤
2. 数据篡改(参数修改)
常见篡改点
- 商品编号、ID、购买数量、价格、优惠券
- 支付方式、订单状态、退款金额
- 用户类型(儿童、老人、成人、VIP 等)
- 其他任意可控参数(如 amount、status、role)
用户类型修改
- 在请求数据包中把“儿童”改为“成人”或“VIP”
- 利用金额字段修改为 0 或负数
- 多次修改参数绕过前端校验
原理
服务器信任客户端提交的参数,未做二次校验或业务逻辑验证
修复建议
- 所有金额、状态、类型字段后端重新计算/校验
- 关键字段(如价格、权限)从服务器端数据库重新读取
- 使用业务逻辑层二次验证
3. 登录相关逻辑漏洞
常见类型
- 客户信息泄露:返回包中包含其他用户手机号、邮箱
- Response 状态值绕过:修改返回的 success、code 值
- Session 覆盖:登录时覆盖他人 Session
- 找回密码流程绕过:跳过验证步骤、Token 固定
- 验证码绕过:多次请求同一验证码有效、图形验证码识别绕过
检测要点
- 查看返回包是否包含其他用户敏感信息
- 修改返回状态码观察业务是否仍执行
- 使用同一 Token 登录多个账号
修复
- 返回包严格过滤敏感字段
- 所有状态判断必须服务端重新校验
- Session 与 IP/User-Agent 绑定
- 找回密码流程每步都必须重新验证
4. 业务逻辑漏洞
常见场景
- 订单 ID:任意订单号修改支付金额
- 手机号 / 用户 ID:修改收货人信息
- 商品 ID:购买不存在或下架商品
- 其他:购物车数量、优惠叠加、退款金额
漏洞根源
- 业务流程未严格按步骤校验
- 前端流程可跳过,后端未做完整性检查
- Token/签名在关键步骤未重新验证
典型案例
- 商品购买流程:修改数量 → 绕过库存校验 → 低价购买
- 密码修改:先验证旧密码 → 修改为任意新密码(未二次验证)
- 支付漏洞:回调地址可控 → 伪造支付成功
5. 未授权访问
常见目标服务(直接访问即可利用)
- JBoss 未授权访问
- Jenkins 未授权访问
- Redis 未授权访问
- Elasticsearch 未授权访问
- MemCache 未授权访问
- MongoDB 未授权访问
- Zookeeper 未授权访问
- Docker 未授权访问
- WebService 测试接口
检测方法:直接访问对应端口或路径(无登录即可操作)
6. 验证安全(Token / 验证码)
Token 类漏洞
- 爆破:Token 可暴力破解
- 回显:Token 值直接返回前端
- 固定:Token 不随用户/时间变化
- 识别:可通过特征识别他人 Token
- 绕过:无 Token 仍可访问
- 重放:同一 Token 多次使用有效
验证码类漏洞
- 图形验证码可 OCR 识别
- 短信/邮箱验证码可无限发送
- 验证码不与用户绑定
- 验证码有效期过长
修复
- Token 使用 JWT + 签名 + 短有效期
- 绑定 IP/User-Agent/Session
- 验证码必须后端重新验证且一次性使用
7. 回调漏洞
常见形式
- 回调地址可控(callback 参数)
- 数据不存在时仍返回敏感信息
- 支付/登录回调未验证签名
- 回调后直接执行敏感操作
修复
- 回调地址必须白名单限制
- 所有回调必须校验签名和 Token
- 回调数据与业务状态二次校验
8. 漏洞根源分析
确定业务流程
- 梳理完整业务链路(从前端到后端每一步)
- 找出所有可能被跳过的步骤
商品购买 / 支付 / 密码修改流程分析
- 前端流程可跳过 → 后端未做完整性校验
- 参数可随意修改 → 未从数据库重新取值
- Token/签名在关键步骤未重新验证
- 回调接口未做身份校验
支付漏洞控制技巧
- 分析所有支付相关参数
- 尝试修改金额、状态、回调地址
- 伪造支付成功回调
- 多次支付后观察后端处理逻辑
参考链接
- 支付漏洞控制技巧详解:https://www.secpulse.com/archives/6780.html
- 密码修改漏洞详解:https://www.secpulse.com/archives/6780.html
使用说明:
- 本 Markdown 已完全按照思维导图结构整理
- 每个大类包含 原理、检测、修复、案例
- 可直接保存为
逻辑漏洞.md - 如需合并上一个「源码框架漏洞」文件,或继续补充其他思维导图,请告诉我!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Tubby Little Hero!






