概述
IDOR,全称 Insecure Direct Object Reference(不安全的直接对象引用,越权),是 Web 安全领域的一个“老牌”漏洞,但威力不容小觑。简单来说,IDOR 发生在应用程序直接使用用户输入的标识符(比如用户 ID、订单号等)来访问资源,却没有严格检查用户是否有权限访问这些资源。
案例1
当单个ID失败时,成对ID可能通过!
•受害者ID:5200•攻击者ID:5233
GET /api/users/5200/info→ 访问被拒绝 ❌
GET /api/users/5200,5233/info→ 绕过成功 ✅
API 端点 /api/users/{id}/info
用于获取用户信息。当攻击者尝试直接访问受害者的 ID(5200)时,系统表现得很“乖”,直接拒绝了请求(Access Denied)。
但当攻击者狡猾地提交了一个“成对 ID”请求/api/users/5200,5233/info
,系统竟然“上当”了,乖乖返回了受害者的信息!这种绕过方式简单到让人瞠目结舌,却能造成严重的数据泄露。
为什么会发生这种绕过?
这种 IDOR 绕过的本质是后端权限验证的漏洞。
许多 API 为了方便,支持一次性查询多个资源,比如 /api/users/5200,5233/info
可以同时返回 ID 为 5200 和 5233 的用户信息。
问题在于,后端可能只粗略检查了请求的“整体权限”,而不是对每个 ID 逐一验证。
举个例子:
攻击者有权限访问自己的 ID(5233),于是系统认为“这个请求里有一个合法的 ID,应该没问题吧”,就直接放行了,结果把受害者的 ID(5200)的数据也一起返回了。这种“偷懒”的逻辑就像银行柜员只检查了你的身份证,却没核对你是否真的有权限查看别人的账户!
仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。“如侵权请私聊公众号删文”。
原文始发于微信公众号(柠檬赏金猎人):当单个ID失败时,成对ID可能通过!越权漏洞就这么简单
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论