• 逻辑漏洞之越权漏洞


    什么是越权漏洞?

    顾名思义,越权漏洞就是由于设计上的缺陷对应用程序的权限做的不好。通俗点来说,就是用户A可以通过某种方式查看到用户B的个人信息,或者可以查看管理员C的一些相关信息。
    分类

    越权漏洞主要分为水平越权和垂直越权。下面来说一说他们的区别。

    水平越权:就是攻击者尝试访问与他相同权限的用户的一些资源。举一个简单的例子,用户A在这个应用程序里保存了自己的个人信息,并且通过相关参数直接获取,用户B在保存个人信息的页面,输入了A用户的参数,直接查看到了A用户的个人信息。

    为什么会出现这种情况呢?我们知道通常情况下,一个应用程序的功能流程是:登陆=>提交请求=>验证权限=>数据库查询=>返回结果。如果权限验证做的不好,就会出现越权。

    都包括哪些情况呢?

    比如直接对象引用,这种情况直接修改参数就可以发生越权,例如,我想查看A用户的信息,直接将URL后的参数改为A用户的就可以了。这里有一个实例,现在登陆张三用户,抓包如下图

    逻辑漏洞之越权漏洞_逻辑漏洞
    逻辑漏洞之越权漏洞_逻辑漏洞_02

    现在将5改为2,然后发送数据包,我们发现用户变为1了

    逻辑漏洞之越权漏洞_逻辑漏洞_03

    还有比如一个功能,多步实现,只在第一步验证用户身份,其他不用,这样攻击者直接跳过第一步,执行下面的操作。

    还有如果对身份验证做的不完善,有可能在未登录的情况下,知道敏感页面URL可以直接访问。

    垂直越权:也叫权限提升攻击,例如,用户A通过构造URL直接进入了管理员B的页面。

    包括哪些情况呢?

    比如设计者通过隐藏URL的方式,通过URL实现访问控制,这是最不靠谱的,要是攻击者猜出后台路径,直接歇菜。

    修复建议

    对于水平越权:

    增加访问与操作对象的用户属性,在对目标对象进行访问与操作时,服务端校验会话与对象的用户属性,在校验通过后才能执行读取和操作。                      
    页面进行严格的访问权限的控制以及对访问角色进行权限检查。
    
    • 1
    • 2

    对于垂直越权:

    采取默认拒绝机制,采取基于角色访问控制,对于各个功能的访问,规定不同角色拥有不同的访问权限,用户访问功能时,验证用户现在的权限和规定的权限是否相同,如果奴同,拒绝访问。
    
    • 1

    《黑客攻防技术宝典Web实战篇》对访问控制进行了整理,我拍了下来分享出来,如下图

    逻辑漏洞之越权漏洞_逻辑漏洞_04

  • 相关阅读:
    JavaSE | 初始Java(十) | 继承和多态
    c# 如何将程序加密隐藏?
    PTA 7-115 单词长度
    从0到1,企业如何快速构建自己的销售体系
    # Python基础:输入输出详解-读写文件(还需完善)
    可执行文件以管理员身份运行
    2024年浙大MPA复试可能面临的变数:权重加大
    基于YOLOv5的双目测距——代码讲解
    【ShaderLab罪恶装备卡通角色_二次元风格_“Sol Badguy“_角色渲染(第二篇)】
    【开源库推荐】go-linq 强大的语言集成查询库如,ORM一般丝滑处理内存数据
  • 原文地址:https://blog.csdn.net/m0_60571990/article/details/127759034