逻辑漏洞–越权漏洞
0x00 漏洞描述
越权访问(Broken Access Control,BAC),指应用在检查授权时存在漏洞,使得攻击者在获得低权限用户账号后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限的用户。
越权的成因是因为开发人员在对数据进行增删查改时,对客户端请求的数据过分相信而遗漏了权限的判定,权限验证不当而导致的越权行为。
0x01 漏洞分类
水平越权
水平越权是指攻击者尝试访问与他具有相同权限的用户资源。
比如,用户A和用户B属于同一角色,拥有相同的权限等级,他们能获取自己的私有数据(数据A和数据B),但如果系统只验证了能访问数据的角色,而没有对数据做细分或者校验,导致用户A能访问到用户B的数据(数据B),那么用户A访问数据B的行为就叫做水平越权访问。
以下是常出现的水平越权的几种场景:
- 基于用户身份ID
在使用某个功能时,通过用户提交的身份ID(用户ID、账号、手机号、证件号等用户唯一标识)来访问或操作对应的数据。 - 基于对象ID
在使用某个功能时,通过用户提交的对象ID(如订单号、记录号)来访问或操作对应的数据。 - 基于文件名
在使用某个功能时,通过文件名直接访问文件,最常见于用户上传文件的场景。
垂直越权
垂直越权是指低权限用户尝试访问高权限用户的资源。
由于后台应用没有做权限控制&#