概述:
由于没有对用户权限进行严格的判断
导致低权限的账号(比如普通用户)可以去完成高权限账号(比如超管)范围内的操作
分为水平越权和垂直越权:
水平越权:A用户和B用户属于同一级别用户,但各自不能操作对方个人信息。A用户如果越权操作B用户个人信息的情况称为水行越权操作。
垂直越权:A用户权限高于B用户,B用户越权操作A用户的权限的情况称为垂直越权。
越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致的
每个应用系统其用户对应的权限是根据其业务功能划分的,而每个企业的业务又都是不一样的
因此越权漏洞很难通过扫描工具发现,往往需要通过手动进行测试
水平越权:
我们登录一下,右上角有提示账号密码。我还是用lili的了,登录之后我们点击 “点击查看个人信息” 就能查看个人信息。
在这里实际上是通过一个 GET 请求,将要查询的用户信息传递到了后台,
我们把 lili 修改为 lucy,提交请求后我们就能查看 lucy 的信息,说明是存在水平越权的漏洞
这样,没有经过密码验证就查看了其他平级用户的信息,这是水平越权。
垂直越权:
我们先登录超级管理员的账号,这里有两个用户admin/123456,pikachu/000000。admin是超级管理员
我们现在添加一个用户:
然后抓包,这是他新建的用户的数据包,并且有登录状态的cookie,把这个请求发送到 Repeater 中
然后退出管理员账号,重放这个数据包,这时候用户是会添加失败的,因为没有登录状态。登录普通用户账号,取出当前账号的Cookie
用上图中的Cookie修改我们刚刚发送到 Repeater 中那个数据包的 Cookie,再重放这个数据包。
这时候就添加了另一个用户,第一个是超级管理员添加的;另一个是普通用户重放超级管理员的数据包添加的。
普通管理员去做超级管理员的操作就是垂直越权,但是比较鸡肋 因为现实很难抓到超级管理员的包。