漏洞概述
- 类型:水平越权(IDOR,Insecure Direct Object Reference)
- 危害等级:中危
- 涉及功能:用户“订单详情”接口(示例,已脱敏)
发现过程
- 登录账号 A 打开订单详情,URL 形如
/api/order/detail?id=10001; - 把
id换成账号 B 的订单号10002,接口正常返回了 B 的收货信息 → 确认接口只校验“登录态”,没校验“资源归属”; - 影响面核实:可遍历读取他人订单(收货人、电话等敏感字段)。
修复建议
- 后端强制用
session 用户 id查订单,不接受前端传入的归属判断; - 对资源访问统一走“权限中间件/授权对象”而非每个接口手写判断。
复盘与技巧清单(下次直接用)
- 列表接口:翻页参数
page/size与排序字段是否存在越权面; - 详情接口:对
id/uid/orderId/fileId做交叉替换测试; - 下载/导出接口:文件路径与文件名参数是否存在目录穿越或越权;
- 关注“接口只在前端隐藏、后端不校验”的菜单/按钮。
注意
示例已脱敏:正式记录同样不要出现真实域名、IP 与账号信息。
