业务逻辑之水平垂直越权
越权:如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
因此,在在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;
水平越权:普通用户->用户A->用户B...
获取用户A用户B账号方法:
- 注册登录测试(当前用户已存在,请尝试其他用户名)
- 访问个人空间,
Over Permission
有如下账户:
进行测试lucy ,水平越权kobe的漏洞.
- 登录lucy账号,密码123456
- 使用burpSuite抓kobe包.然后发送到repeater模块.kobe改为lucy.
可以发现水平越权,
![image-20220728101819875](https://img2022.cnblogs.com/blog/2816516/202207/2816516-20220728214721016-580346547.png)
Over permission水平越权:
- 两个同级别用户之间的跨越;
垂直越权:普通用户->计划专员->超级查看员->超级管理员
普通用户:pikachu:000000
没有增加增删改功能.
登录管理员账号.
功能点很多.
尝试抓admin包,之后复制cookie,尝试登录.
更改use为admin,cookie换为管理员cookie.登陆成功.
抓用pikachu创建一个test01的包.
发送到repeater模块.一会使用普通账户pikachu用户cookie来添加用户.之后将添加的包丢弃,重新登录pikachu账号.
垂直越权,攻击成功.
墨者:身份认证失效实战:
- 登录test账户:
一共有两个数据包,留下第二个数据包,
- 可以发现有两个地方,一个猜测是员工编号,另外一个是姓名,题目让我们找马经理电话,需要进行水水平越权,我们在card_id进行爆破.
配置参数:
爆破出来很多账户.主页有马春深.获取图片地址.
位数为card_id=16,burp查看,
3.MD5解密
使用Authz检测是否具有越权漏洞.
-
选中全部发送到Authz
-
找一个普通用户,复制他的cookie,
-
全选之后添加cook变量进行测试
白色代表存在水平越权漏洞,authz工具的使用,此篇文章较为详细.
防御:
- 组编号,或者类型编号.来可获取用户当前什么级别.
- 前后端验证
- 验证用户是否拥有相应功能.
- 直接对象引用加密IP,防止攻击者枚举IP,敏感数据特殊化处理
- 对于前端数据的输入进行严格检查与过滤.