• 网络安全——逻辑漏洞之越权漏洞


    作者名:Demo不是emo 

    主页面链接:主页传送门
    创作初心:一切为了
    座右铭:不要让时代的悲哀成为你的悲哀
    专研方向:网络安全,数据结构

    每日emo:希望我失望的日子过的快些

    目录

    一.越权漏洞简介

    二. 越权漏洞分类

    1.水平越权

    2.垂直越权

    3.上下文越权

    三. 越权漏洞易发生的点

    1.基础参数

    2.多阶段验证

    3.基于参数的访问控制

    4.链接隐藏

    5.其他位置

    四. 越权漏洞的挖掘

    五. 实例演示

     1.垂直越权

     2.水平越权

    六. 越权漏洞的防御 


    一.越权漏洞简介

    越权漏洞是Web应用程序中一种常见的安全漏洞。它的威胁在于一个账户即可控制全站用户数据。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。而且属于逻辑漏洞的一种,防护和检测都不好做。

    二. 越权漏洞分类

    按照维度分:

    1.水平越权

    这种类型的越权就是越权其他用户,比如说你要查看一篇邮件,但是有越权漏洞,却可以查看其他人的邮件。水平越权导致任意用户敏感信息泄露或者用户信息被恶意修改。

    2.垂直越权

    这种类型的越权就是可以在不同身份之间越权,比如你是普通用户,但是可以越权到管理员,甚至超级管理员。管理员和超级管理员能使用的功能就多了。

    3.上下文越权

    上下文越权就是说在某个程序需要执行n个步骤,而你却可以跳过其中某个步骤,直接到最后的步骤。

    三. 越权漏洞易发生的点

    1.基础参数

    通过修改一下参数就可以产生水平越权,例如查看用户信息页面 URL 后加上自己的 id 便可查看,当修改为他人的id号时会返回他人的信息。再比如cookie中的参数就作为用户的凭据,修改这个凭据便可以其他用户身份通过验证。

    2.多阶段验证

    多阶段功能是一个功能有多个阶段的实现。例如修改密码,可能第一步是验证用户身份信息,号码验证码类的。当验证成功后,跳到第二步,输入新密码,很多程序会在这一步不再验证用户身份,导致恶意攻击者抓包直接修改参数值,导致可修改任意用户密码。

    3.基于参数的访问控制

    有的程序会在参数里面进行权限认证。如:www.xxx.com/uid=test&admin=0 ,把0改为1就有了admin权限。

    4.链接隐藏

    有的程序会把页面独立,让爬虫爬取不到,但是可以使用扫目录的方式扫到url,如果此时页面不做权限认证,就可直接访问到功能点,或者只是前端跳转,可以使用burp抓回包,然后删除js代码绕过。

    5.其他位置

    越权可能存在的地方:增、删、改、查、详情、导出等功能,当有这些功能的时候提高重视,在url、post data、cookie处寻找是否有鉴权参数

    最关键的点就是定位鉴权参数,然后替换为其他账户鉴权参数的方法来发现越权漏洞。

    四. 越权漏洞的挖掘

     测试水平越权漏洞一般要控制2个账号,来互相探测能否影响到对方数据,一般是使用2个浏览器,分别使用2个账号登陆,在各个功能点修改参数(get、post、cookie)观察是否会影响到另一个账号的数据。  测试垂直越权一般看是否补通过认证即可访问管理页面,或是找是否有一个参数表示身份权限是否是管理员。

    . 实例演示

     1.垂直越权

    找到需要登陆的页面

      通过目录扫描发现后台管理可不需要登陆直接访问,这就造成了垂直越权

     

     2.水平越权

    首先注册账号sec123然后上传一个附件,再注册一个账号sec321,用sec321上传一个不公开附件

    使用sec123下载上传的附件

      修改pathfile字段,即可下载sec321用户的附件,遍历pathfile字段即不需要知道确切文件名即可下载其他用户文件

    六. 越权漏洞的防御 

    1.不能只根据用户 id 参数去搜索,应该再次进行身份验证(防止水平越权)。

    2.可以从用户的加密认证 cookie 中获取当前用户 id,防止攻击者对其修改。或在 session、cookie 中加入不可预测、不可猜解的 user 信息。

    3.在每个页面加载前进行权限认证(防止垂直越权)。

    4.对有多步验证的应用,需要准确验证上一步是否通过。

  • 相关阅读:
    Golang之封装Mysql Slave小例子
    堪称完美,仅用了330页直接封神,被大家吹爆的RocketMQ笔记
    Python UI自动化 —— pytest常用运行参数解析、pytest执行顺序解析
    字符流用户注册案例、字符缓冲流、字符缓冲流特有功能、字符缓冲流操作文件中的数据排序案例
    【读书笔记】高级FPGA设计之高速率结构设计
    kafka-- 安装kafka manager及简单使用
    在K8S中,静态、动态、自主式Pod有何区别?
    python安全工具开发笔记(三)——python 多线程
    Linux NVMe Driver学习笔记之7:Identify初始化及命令提交过程
    ABB PU515A 3BSE032401R1 自动化控制模块
  • 原文地址:https://blog.csdn.net/qq_63844103/article/details/128009542