业务授权访问模块之越权漏洞

越权漏洞

  • 越权漏洞就是指攻击者能够执行他原本没有权限执行的一些操作。
  • 也就是“超越了你所拥有的权限,干了你本来不可能干的事儿”。
  • 越权漏洞一般分为两种∶水平越权和垂直越权

业务授权访问模块之越权漏洞

水平越权

  • 如果攻击者能够执行与自己同级别的其他用户能够执行的操作,这就存在水平越权漏洞。
    业务授权访问模块之越权漏洞

垂直越权

  • 如果攻击者能够执行某项功能,而他所属的角色并不具备该权限,这就存在垂直越权漏洞。
    业务授权访问模块之越权漏洞

危害

  • 1、导致用户敏感信息泄露
  • 2、导致用户信息被恶意添加、修改或删除

漏洞原理

产生原因

  • 主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。
  • 开发者认为通过登录即可验证用户的身份,而对用户登录之后的操作不做进一步的权限验证,进而导致越权问题。

漏洞验证

  • 通常情况下,我们使用一个web应用程序提供的功能时,流程如下。
  • 如果在“验证权限”环节存在缺陷,那么便会导致越权。

业务授权访问模块之越权漏洞

测试

案例一:水平越权

  • 通过水平越权漏洞实现查看其他用户的收货地址、联系方式等信息

测试方法

  • 申请两个帐户,如A用户和B用户。
  • 分别抓取A和B两个用户中的请求数据包,通过修改数据包中可能代表用户身份或产品序号等相关参数的值,
  • 判断是否可通过修改A用户的数据来实现访问B用户的信息。

测试步骤

  • 第一步 抓取a用户的个人信息
    业务授权访问模块之越权漏洞

  • 第二步 查看b用户的个人信息
    业务授权访问模块之越权漏洞

  • 第三步 修改id为a用户的
    业务授权访问模块之越权漏洞
    业务授权访问模块之越权漏洞

  • 注意:可以对id字段进行遍历,进行查看存在的用户id
    业务授权访问模块之越权漏洞
    业务授权访问模块之越权漏洞
    业务授权访问模块之越权漏洞
    案例二:垂直越权

  • 通过垂直越权漏洞实现普通用户变为管理用户

测试方法

  • 一般在用户注册或修改密码等处抓取请求数据包,修改其中可能代表用户身份的参数,
  • 看是否能越权注册成为管理用户或修改管理用户的密码。

测试步骤

第一步 登录低权限用户tom,进行修改密码
业务授权访问模块之越权漏洞
第二步 抓取tom修改密码的数据包
业务授权访问模块之越权漏洞

  • 第三步 将用户名字段改为admin
    业务授权访问模块之越权漏洞
    业务授权访问模块之越权漏洞
  • 第四步 使用admin和密码进行登录
    业务授权访问模块之越权漏洞

防御方案

  • 1、在前端验证用户的输入是否合规,在服务器端验证用户权限。
  • 2、执行关键操作前必须验证用户身份,有多阶段、多步骤的业务流程每一步都需要验证用户身份。
  • 3、对敏感参数信息进行加密处理,以防止攻击者对参数信息进行枚举。

摘抄


二十年后,让你感到失望的不会是你做过的事,

而会是你没做过的事,所以,请解开绳索,

驶离安全的港湾,扬帆起航吧。

去探索,去梦想,去发现!

—— 马克·吐温