我们先把垂直越权漏洞的思路理一下

首先我们先用一个超级管理员的账号去登陆一下

然后我们对超级管理员的账号独一无二的权力去进行操作

然后我们把这个操作的数据包给抓下来

java如何处理垂直越权 垂直越权漏洞_删除用户


抓下来之后 我们就退出超级管理员的登陆,我们用普通账号,来进行一次这个超级操作

如果这个操作可以成功,就意味着这个操作存在着垂直越权的漏洞

java如何处理垂直越权 垂直越权漏洞_删除用户_02


我们来演示一遍

首先超级管理员身份登陆

java如何处理垂直越权 垂直越权漏洞_删除用户_03


进来以后我们可以看到,超级管理员可以添加删除用户,还可以看到所有的用户,

java如何处理垂直越权 垂直越权漏洞_java如何处理垂直越权_04


那么我们就添加一个用户试试

java如何处理垂直越权 垂直越权漏洞_java如何处理垂直越权_05


我们可以在用户列表上看到我已经成功添加了

java如何处理垂直越权 垂直越权漏洞_删除用户_06


我们到burp上看看他的提交(post)

java如何处理垂直越权 垂直越权漏洞_页面刷新_07


老规矩 发到repeater里面去

java如何处理垂直越权 垂直越权漏洞_页面刷新_08


之后我们退出超级管理员登陆,此时应该是无法执行这个操作了

再跑一遍发现果然不行了

java如何处理垂直越权 垂直越权漏洞_java如何处理垂直越权_09


再次登陆进去也发现没有第二个用户添加,没有问题

接着我们登陆普通管理员

java如何处理垂直越权 垂直越权漏洞_删除用户_10


这个管理员只有查看权限

java如何处理垂直越权 垂直越权漏洞_删除用户_11


刷新一下,去抓这个get请求

java如何处理垂直越权 垂直越权漏洞_页面刷新_12


我们复制一下当前用户的登陆态

Cookie: PHPSESSID=8eu1upm026h9ptpb7fsot6cou6

再找到之前的post请求

java如何处理垂直越权 垂直越权漏洞_页面刷新_13


我们把它发到repeater里面去,如果发包的话 还是会提示你需要登陆超级管理员

那我们把他的登陆态cookies换成普通管理员的呢?

java如何处理垂直越权 垂直越权漏洞_页面刷新_14


GO!

点跟踪以后,我们回到页面刷新

发现用户又被增加了一个

java如何处理垂直越权 垂直越权漏洞_post请求_15


这就说明这个地方存在垂直越权漏洞

这个地方存在的原因是后台代码没有对当前登陆账号的操作进行权限验证导致的