• 逻辑漏洞之越权漏洞


    前言

    上一篇文章中,对逻辑漏洞进行了简单的描述,这篇文章简单的说一说逻辑漏洞中的越权漏洞。

    参考文献《黑客攻防技术宝典Web实战篇第二版》

    什么是越权漏洞?

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

    分类

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

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

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

    都包括哪些情况呢?

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

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

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

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

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

    包括哪些情况呢?

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

    修复建议

    对于水平越权:

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

    对于垂直越权:

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

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

  • 相关阅读:
    HTML基础
    JVM内存和JVM调优(五)--分代垃圾回收详述
    JVM内存和JVM调优(四)--如何区分垃圾
    JVM内存和JVM调优(三)--基本GC垃圾回收算法
    JVM内存和JVM调优(二)--引用类型
    JVM内存和JVM调优(一)--堆栈概念
    isAssignableFrom和instanceof
    spring学习(三十九)--自定义注解
    SPRING学习(三十八)--SPRING集成MYBATIS之数据库连接池和多种数据源配置方式(三)
    SPRING学习(三十七)--SPRING集成MYBATIS(二)
  • 原文地址:https://www.cnblogs.com/lxfweb/p/12896750.html
Copyright © 2020-2023  润新知