SRC挖掘—web不安全的直接对象引用 (IDOR)漏洞-3day

SRC挖掘—web不安全的直接对象引用 (IDOR)漏洞-3day什么是IDOR?当应用程序根据用户提供的输入提供对对象的直接访问时,就会发生不安全的直接对象引用(IDOR)。由于此漏洞,攻击者可以绕过授权并直接访问系统中的资源,例如数据库记录或文件。不安全的直接对象引用允许攻击者通过修改用于直接指向对象的参数值来绕过授权并直接访问资源。这些资源可以是属于其他用户的数据库条目、系统中的文件等等。这是因为应用程序接受用户提供的输入并使用它来检索对象而没有执行足够的授权检查。(来源:OWASP)让我们看一个例子。想象一下,您正在使用一个文档共享平台。您可以上传..

大家好,又见面了,我是你们的朋友全栈君。

什么是 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 漏洞的最佳方法是对每个功能实施严格的访问控制检查,以查看用户是否有权访问和/或操作请求的对象。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135272.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python多线程与多线程中join()的用法

    Python多线程与多线程中join()的用法Python多线程与多进程中join()方法的效果是相同的。下面仅以多线程为例:首先需要明确几个概念:知识点一:当一个进程启动之后,会默认产生一个主线程,因为线程是程序执行流的最小单元,当设置多

    2022年7月3日
    26
  • django常用命令_django怎么用

    django常用命令_django怎么用前言我们掌握了如何在命令提示符或PyCharm下创建Django项目和项目应用,无论是创建项目还是创建项目应用,都需要输入相关的指令才能得以实现,这些都是Django内置的操作指令。在PyChar

    2022年7月30日
    8
  • php实现笛卡尔积

    php实现笛卡尔积问题:有那么一个数组$arr=array(array(1,2,3),array(‘中’,’国’,’人’),array(‘a’,’b’,’c’));要求使用PHP语言实现计算该数组的笛卡尔积。实现过程如下所示:<?php$arr=array(array(1,2,3),array(‘…

    2022年7月27日
    5
  • 中国大推力矢量发动机WS15 跨入 世界先进水平!

    中国大推力矢量发动机WS15 跨入 世界先进水平!

    2021年12月3日
    360
  • python和c++哪个好_run pycharm community edition

    python和c++哪个好_run pycharm community edition在pycharm中使用django命令的过程中经常会用到pythonmanage.py相关的命令,每次都输入pythonmanage.py会比较麻烦,可以利用pycharm提供的tools来省去pythonmanage.py的重复输入。具体实现过程如下:先进入settings完成如下操作随后可勾选Tools中的Runmanage.pyTask完成后即可以直接输入manag…

    2022年8月26日
    7
  • Django(24)永久重定向和临时重定向「建议收藏」

    Django(24)永久重定向和临时重定向「建议收藏」重定向重定向分为永久重定向和临时重定向,在页面上体现的操作就是浏览器会从一个页面自动跳转到另外一个页面。比如用户访问了一个需要权限的页面,但是该用户当前并没有登录,因此我们应该给他重定向到登录页面。

    2022年7月30日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号