Skip to content

Latest commit

 

History

History
35 lines (20 loc) · 2.28 KB

Broken-Access-Control-Vertical-Privilege-Escalation.md

File metadata and controls

35 lines (20 loc) · 2.28 KB

违反访问控制(垂直权限升级)

漏洞描述

访问控制是为了防止用户执行预期权限之外的操作。当这些访问控制存在漏洞时,用户便可以执行预期权限之外操作,这可能允许攻击者从其他用户那里窃取信息、修改数据,或以其他用户的身份进行其他敏感操作。

访问控制策略分为两类:水平访问控制和垂直访问控制,其作用分别如下:

  • 垂直访问控制:不同类型和权限的用户角色可以访问不同的应用程序功能。例如,管理员可能可以修改或删除任何用户的账户,而普通用户则无法访问这些操作。
  • 水平访问控制:不同的用户可以访问同一类型的应用功能。例如,一个银行应用程序将允许用户查看交易和从他们自己的账户进行支付,但不允许对任何其他用户的账户进行操作。

对应以上两种访问控制策略,违反访问控制漏洞也分为两类:水平权限升级和垂直权限升级。

  • 水平权限升级:当一个用户可以以另一个拥有相同权限的用户的身份来执行操作时,就会产生水平权限升级漏洞。
  • 垂直权限升级:当一个用户可以执行一个操作,而该操作所需的权限级别超出了他们的角色时,就会产生垂直权限升级漏洞。

此处为垂直权限升级漏洞。

漏洞影响

访问控制被违反会使应用程序处于高风险的状态,通常会导致数据的保密性和完整性受到影响。

攻击者可以通过低权限用户的身份执行高权限用户的操作,通过执行高权限用户角色在应用程序中可以执行的操作来操纵数据,窃取或修改应用程序的敏感信息。(这段按照实际情况做修改)

修复建议

一般来说,可以通过在代码开发时遵循以下原则,来防止访问控制漏洞:

  1. 切勿仅仅依靠混淆来进行访问控制。
  2. 除非资源是要公开访问的,否则默认拒绝访问。
  3. 只要有可能,就使用单一的应用程序范围的机制来执行访问控制。
  4. 在代码层面,强制要求开发人员声明每个资源的访问权限,并设置默认方式为拒绝访问。
  5. 对访问控制进行彻底的审计和测试,以确保其按设计的方式运行。