pikachu Over Permission
Over Permission
如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
因此,在在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;
水平越权
先登录,观察点击完查询个人信息后浏览器向后台发送的get请求是什么
那可以直接在URL中把username的值换成lili ,这样直接绕过了账号密码,存在水平越权漏洞
观察源码,这里代码有逻辑问题,这里直接获取username的值直接去查询了,
应该是只有当前登录的用户和user id相对比 是不是当前用户
垂直越权
测试流程:
先用超级管理员登录,用超级管理员独一无二的权限,比如执行新增账号命令,
抓这个新增账号这个数据包,之后修改包为普通用户的身份再放包,如果成功
存在垂直越权的漏洞。
先用超级管理员创建一个普通用户
抓包,发送到repeater,之后退出登录(超管)使其不要处在登录态
可以直接放掉抓到的包,看是否有重定向到登录界面,有了就是已经
不处在 登录态了
用普通用户登录,抓到普通用户登录态的cookie放到之前抓到包里
修改cookie值,重放包看是否会完成操作。
可以看到已经多加了一行。
所以源码只是判断了当前用户是否登录而没有判断登录的用户权限是什么。