水平越权
水平越权概述
相同权限下不同的用户可以互相访问
也称为横向越权,指相同权限下不同的用户可以互相访问,比如A和B是同权限的用户,如果A能看到理论上只有B能看到的信息,或者A能执行理论上只有B能执行的操作,那就是水平越权啦。
水平越权漏洞测试
看看能否通过A用户操作影响到B用户
1.进入pikachu的水平越权目标页面,一开始要求登录
越权总要先用一个用户登录成功吧,点一下提示,这关有三个同级别的用户
2.先用lucy登录,发现有个可以点击查看个人信息的地方,点击之后,回显了lucy个人信息
3.上图中url的参数username的值是用户名lucy,若我们将该参数值改为kobe回显是否也是Kobe用户的信息呢?
来试一下payload:http://ip:port/pikachu/vul/overpermission/op1/op1_mem.php?username=kobe&submit=点击查看个人信息#
可以看到返回的是kobe的个人信息
4.通过查看源代码来分析以上问题
通过源码了解到在查找用户信息的时候传入的参数是直接从url中获取的,没有校验当前用户
防御水平越权
1.如下图所示,增加判断url传入的username和当前用户是否匹配的语句,如果匹配则为$username赋值,若不匹配则不赋