概述
形成原因:后台使用了不合理的权限校验规则导致。
一般越权漏洞容易出现在权限页面(需要登录的页面)增删改查的地方,当用户对权限页面内信息进行这些操作,后台需要对当前用户的权限进行校验。
防范:
在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权
2.使用合理(严格)的权限校验规则
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件
水平越权
注:同一级别用户A和B,A越权操作B个人信息。
分别登录lucy,lili账号,查看信息后url仅仅只有username参数是不同的,修改username就可以随意查看其他用户的个人信息了。
观察源代码,发现只判断了是否登录,并没有使用session校验
check_op_login函数只判断了[‘op’][‘username’]和[‘op’][‘password’]是否被定义。
在查看信息的界面只判断了是否登录,未判断是哪个用户。
垂直越权
注:A权限高于B,B可以越权操作A用户权限。
步骤:
抓admin创建用户的数据包放到repeater中,退出admin,重放数据包,添加用户会失败,因为没有登录状态。
登录pikachu,修改cookie变为添加用户数据包的cookie,再重放可成功添加用户,第一个是超级管理员添加的;另一个是普通用户重放超级管理员的数据包添加的。
后台没有判断发送这个数据包的用户权限,而是直接执行了。