1、越权概述
如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。因此,在在权限管理中应该遵守:
- 使用最小权限原则对用户进行赋权;
- 使用合理(严格)的权限校验规则;
- 使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;
越权分为水平越权和垂直越权:
(1)水平越权是指攻击者尝试访问与他具有相同权限的用户资源。
比如,用户A和用户B属于同一角色,拥有相同的权限等级,他们能获取自己的私有数据(数据A和数据B),但如果系统只验证了能访问数据的角色,而没有对数据做细分或者校验,导致用户A能访问到用户B的数据(数据B),那么用户A访问数据B的行为就叫做水平越权访问。
(2)垂直越权是指低权限用户尝试访问高权限用户的资源。
由于后台应用没有做权限控制,或仅仅在菜单、按钮上做了权限控制,导致恶意用户只要猜测其他管理页面的URL或者敏感的参数信息,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。
2、水平越权
(1)我们使用:lucy/123456,lili/123456,kobe/123456
登录。
(2)点击查看个人信息,可以发现:浏览器会给服务器发一个get请求的数据包。
如果将username改为lili
是否可以访问lili的个人信息呢?
3、垂直越权
(1)使用admin/123456
管理员账号登录;
(2)使用普通用户pikachu/000000
登录;
与管理员用户相比,普通用户只有查看权限。
在pikachu用户的网站,使用paylod:http://192.168.92.1:32769/vul/overpermission/op2/op2_admin_edit.php
pikachu用户拥有了与管理员一样的添加用户的权限。