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