水平越权
指攻击者尝试访问与他拥有相同权限的用户资源。例如,用户A和用户B属于同一角色,拥有相同的权限等级,他们能获取自己的私有数据(数据A和数据B),但如果系统只验证了能访问数据的角色,而没有对数据做细分或者校验,导致用户A能访问到用户B的数据(数据B),那么用户A访问数据B的这种行为就叫做水平越权访问。

概况
来到了靶场的
http://192.168.182.147/vul/overpermission/op1/op1_mem.php
水平越权测试页面:

http://192.168.182.147/vul/overpermission/op1/op1_mem.php?username=vince&submit=%E7%82%B9%E5%87%BB%E6%9F%A5%E7%9C%8B%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF
从URL地址,我们可以看到,尽管当前我以vince的身份进行登录了。当url地址栏有个username的参数,依然是以vince的名字带入了参数进行查询。
开脑洞

尝试把vince的名字换成其他人的名字会如何,假设我认识一个人,他的名字叫: allen 那是否可以尝试把username换成allen会如何?
测试结果

http://192.168.182.147/vul/overpermission/op1/op1_mem.php?username=allen&submit=%E7%82%B9%E5%87%BB%E6%9F%A5%E7%9C%8B%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF
原来水平越权是真的存在。

源码分析
