对象级越权漏洞 (Insecure Direct Object Reference)
真实案例:某电商平台通过修改订单ID可查看任意用户订单,泄露数百万用户隐私。
IDOR 是指应用程序使用用户可控的输入(如 ID)直接访问对象,但没有验证用户是否有权访问该对象。
// 有漏洞的代码
GET /api/order/1001 → 返回订单1001(不管是谁的)
GET /api/order/1002 → 返回订单1002(不管是谁的)
// 攻击者只需遍历 ID 就能获取所有订单!
访问同级别其他用户的数据
普通用户访问管理员数据
执行无权限的操作
通过修改订单ID查看其他用户的订单详情
高危通过修改用户ID篡改其他用户的个人信息
高危通过修改文件ID删除其他用户的私密文件
高危| ID | 用户名 | 角色 | 拥有的资源 |
|---|---|---|---|
| 1 | zhangsan | 普通用户 | 订单1001,1002 | 文件doc_001,doc_002 |
| 2 | lisi | 普通用户 | 订单1003,1004 | 文件doc_003 |
| 3 | admin | 管理员 | 文件doc_004 |