垂直越权
由于后台应用没有做权限控制,或仅仅在菜单、按钮上做了权限控制,导致恶意用户只要猜测其他管理页面的URL或者敏感的参数信息,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。
概述
打开页面,来到垂直越权的页面处
这里使用的是后台管理登录用户表,上帝模式的数据库表如下:
我们用admin账号登录,密码:123456 去后台看看,我们有什么权限。 再用test账号登录看看,密码:abc123 大家多对比,用不同的账号进入后看到的效果。 pikachu pass: 000000
Admin登录后的结果
test账号登录后的结果
pikachu账号登录的结果
开脑洞
Admin与pikachu的登录后的页面信息有明确的不同之处,
pikachu:
admin:
推测,页面不同,管理功能即不同,这个页面,如果在不登录的时候,是否也可以在外部进行某些功能的访问呢?
漏洞实践
经过测试,发现,管理员的用户添加功能:
http://192.168.182.147/vul/overpermission/op2/op2_admin_edit.php
在pikachu正常登录以后,直接在浏览区输入上面的地址,就可以直接访问到:

点击创建以后,页面产生了跳转,转入到了登录入口,我们以admin身份进去审视一下结果
发现系统增加了一个多的账号叫t001。
延伸
采用BS抓包,我们可以把这个包进行重放,自由修改。
源码分析
op2_login.php页面 对于登陆用户的level进行了判断 判断他们进入哪个页面
op2_user.php 只判断了是否登陆
function中的check_op2_login函数 只是判断了是否定义变量
op2_admin.php 在这个页面进行了登陆和level级别的判断,所以登陆pikachu用户后访问admin.php页面会直接跳转到登陆页面
添加用户的页面 op2_admin_edit.php 只判断了是否登陆 没有验证级别 所以存在越权

结论
- 通过对垂直越权的讲解,我们对垂直越权有了认识和学习。我们需深刻的理解从高管理功能挖掘垂直越权漏洞。
- 认真反思,类似的漏洞都是什么原因产生的。


