• 【信息安全】浅谈IDOR越权漏洞的原理、危害和防范:直接对象引用导致的越权行为


    前言

    ┌──────────────────────────────────┐
    │	正在播放《越权访问》 - Hanser
    │	●━━━━━━─────── 00:00 / 03:05
    │	↻ ◁ ❚❚ ▷ ⇆               
    └──────────────────────────────────┘
    
    附银狼美图镇楼
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    银狼美图镇楼


    越权

    越权是指一个用户或者角色在系统中执行超出其权限范围的操作。常见的例子包括未经授权的访问、修改或删除其他用户的数据,或者执行超出其角色权限的操作。越权行为可能导致敏感信息泄露、数据损坏、系统功能被滥用等安全问题。

    攻击者可以通过越权访问到不应该被其所见的数据,甚至可能篡改或删除重要的信息。这可能导致用户隐私泄露、数据完整性受损,甚至可能对整个系统的可用性造成影响。

    危害

    越权行为可能导致敏感信息泄露、数据损坏、系统功能被滥用等安全问题。攻击者可以通过越权访问到不应该被其所见的数据,甚至可能篡改或删除重要的信息。

    直接对象引用 DOR

    直接对象引用(Direct Object Reference,简称DOR)是指在系统中直接暴露敏感对象的引用。直接对象引用的对象可以是文件、数据库中的某些数据,甚至是整个文件夹。

    在许多Web应用程序中,通过URL参数或者请求体中的参数传递对象引用是很常见的做法。例如,在一个文件管理系统中,可以通过URL参数传递文件名来访问对应的文件。

    http://www.example.com/file.php?example.doc
    
    • 1

    不安全的直接对象引用 IDOR

    不安全的直接对象引用(Insecure Direct Object Reference,简称IDOR)是一种安全漏洞,指在系统中直接暴露敏感对象的引用,使攻击者可以通过修改对象引用来越权访问未经授权的资源。

    原理

    IDOR的原理是攻击者通过修改对象的标识符,绕过权限验证,访问到不应该被其所见的资源。通常,系统中的对象都会有一个唯一的标识符(如ID),用于访问和操作该对象。攻击者可以通过修改对象的标识符,来访问到未经授权的资源。

    http://www.example.com/user.php?id=1
    http://www.example.com/user.php?id=2
    http://www.example.com/user.php?id=3
    http://www.example.com/user.php?id=4
    http://www.example.com/user.php?id=5
    
    • 1
    • 2
    • 3
    • 4
    • 5

    危害

    直接对象引用可能导致敏感信息泄露、数据篡改、越权访问等安全问题。攻击者可以通过修改对象引用来访问到不应该被其所见的资源,甚至可能对其进行篡改或删除。

    防范

    1. 加密和混淆对象引用:对于敏感的对象引用,可以使用加密或混淆的方式来隐藏其真实值,使攻击者无法轻易猜测或修改。使用加密算法对对象引用进行加密,确保只有合法的用户能够解密并使用该引用。

      举个栗子,我们用哈希代替明文用户ID:

      http://www.example.com/user.php?id=qV7Jc9D6ZbYp2Xe0aW3TtRg5KlM1nIoP
      
      • 1
    2. 授权验证和访问控制:在访问敏感资源之前,进行严格的授权验证和访问控制,确保只有具有相应权限的用户可以访问。验证用户的身份和权限,限制用户对敏感资源的访问,确保只有合法的用户才能够访问。

    3. 使用间接引用:不直接暴露敏感对象的引用,而是通过中间层或代理来进行访问,以增加额外的安全性和控制。通过使用间接引用,可以隐藏真实的对象引用,只暴露一个代理或中间层的引用,以增加攻击的难度。

    4. 输入验证和过滤:对所有输入进行严格的验证和过滤,以防止攻击者通过篡改请求参数来进行IDOR攻击。不仅要验证和过滤表单中的数据,还要对所有与对象引用相关的输入参数进行校验,包括URL中的参数、请求头中的参数等。

    5. 审计和监控:定期审计系统中的操作日志,及时发现和响应IDOR攻击行为。监控系统中的异常访问行为,包括访问频率、访问路径等,及时发现潜在的IDOR攻击。

  • 相关阅读:
    图像分割 K-means聚类分割算法
    【Linux】指令及权限管理的学习总结
    【Arduino ESP32教程入门】Note
    软件设计模式系列之二十四——模板方法模式
    Leetcode刷题详解——被围绕的区域
    golang mapstructure库实践
    【image captioning】CaMEL: Mean Teacher Learning for Image Captioning(实现流程)
    抗量子计算简述
    Java中二维数组练习题
    记录因为端口号使用6000,造成浏览器GET请求无响应
  • 原文地址:https://blog.csdn.net/qq_34988204/article/details/134486030