大家好,又见面了,我是你们的朋友全栈君。
什么是 IDOR?
当应用程序根据用户提供的输入提供对对象的直接访问时,就会发生不安全的直接对象引用 (IDOR)。由于此漏洞,攻击者可以绕过授权并直接访问系统中的资源,例如数据库记录或文件。不安全的直接对象引用允许攻击者通过修改用于直接指向对象的参数值来绕过授权并直接访问资源。这些资源可以是属于其他用户的数据库条目、系统中的文件等等。这是因为应用程序接受用户提供的输入并使用它来检索对象而没有执行足够的授权检查。(来源: OWASP)
让我们看一个例子。想象一下,您正在使用一个文档共享平台。您可以上传重要文档并与他人共享。一个常见的用例可能是您想与未来的雇主分享您的简历(包含个人数据)。
检索文件的 HTTP 请求示例如下所示:
GET /document/sharing?docID=1337 HTTP/1.1
Host: example.com
攻击者现在可以尝试枚举“docID”请求参数。使用自动化工具,他/她可以例如尝试在几分钟内开始查询从 0 一直到非常高的数字的“docID”。
IDOR的影响!
不安全的直接对象引用漏洞的影响在很大程度上取决于应用程序的功能。因此,不能轻易给出明确的清单。一般来说,IDOR 漏洞可能会给 CIA(机密性、完整性、可用性)数据带来风险。
简单的说,你在发送消息或者做一些事情的时候会有一些id等于您当前的账号,如果修改此参数,可能会发生不一样的效果,当然不包括信息,可能文件,账户等等,也不一定是纯数字,总是应该细心关注每一个参数
IDOR 示例
有许多访问控制漏洞的例子,其中用户控制的参数值用于直接访问资源或功能。
直接引用数据库对象的 IDOR 漏洞
考虑一个网站,它通过从后端数据库检索信息,使用以下 URL 访问客户帐户页面:
https://insecure-website.com/customer_account?customer_number=132355
在这里,客户编号直接用作在后端数据库上执行的查询中的记录索引。如果没有其他控制措施,攻击者可以简单地修改该customer_number
值,绕过访问控制来查看其他客户的记录。这是导致横向权限提升的 IDOR 漏洞示例。
攻击者可能能够通过在绕过访问控制的同时将用户更改为具有额外权限的用户来执行水平和垂直权限提升。例如,其他可能性包括一旦攻击者登陆用户的帐户页面,利用密码泄漏或修改参数。
直接引用静态文件的 IDOR 漏洞
当敏感资源位于服务器端文件系统的静态文件中时,通常会出现 IDOR 漏洞。例如,网站可能会使用递增的文件名将聊天消息记录保存到磁盘,并允许用户通过访问如下 URL 来检索这些记录:
https://insecure-website.com/static/12144.txt
在这种情况下,攻击者可以简单地修改文件名来检索另一个用户创建的脚本,并可能获取用户凭据和其他敏感数据。
如何预防 IDOR?
防止 IDOR 漏洞的最佳方法是对每个功能实施严格的访问控制检查,以查看用户是否有权访问和/或操作请求的对象。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/135272.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...