概述
1.平行越权
A用户和B用户属于同一级别的而用户,但不能操作对方个人信息,A用户如果越权操作B用户的个人信息的情况属于平行越权。
2.垂直越权
A用户权限高于B用户,B用户越权操作A用户的权限的情况称为垂直越权。
3.漏洞挖掘
越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致。
每个应用系统其用户对应的权限是根据其业务功能划分的,而每个企业的业务又都是不一样的。
因此越权漏洞很难通过扫描工具发现出来,往往需要通过手动进行测试。
一、水平越权
测试流程:
(1)登录一个普通用户的账号(lucy 123456)并查看个人信息:
看一看这时提交了什么内容到后台,查看URL可以发现,提交了username和submit操作:
(2)尝试修改username为lili
回车,可以发现查看到了lili的个人信息:
查看后台代码:
可以发现,个人信息页面是在登录态查看的,那么当前登录的人应该只可以查看自己的信息,所以点击查看个人信息时,后台除了需要获取用户名之外,还需要校验这个请求是不是当前登录的用户发过来的,若当前的登录人是lucy,那么传给后台的username只能是lucy,若是其他人就要拒绝掉这个请求。
二、垂直越权
测试流程:
(1)用超级管理员的账号登录:
(2)使用超级管理员特有的权限,比如添加用户,去执行这一操作:
添加用户yy并用Burp Suite抓取这一数据包:
(3)将这一请求发送到Repeater中:
(4)退出超级管理员登录,重放数据包后重定向可以发现提示登录而不是可以添加用户:
再次管理员登录查看可以发现是没有成功添加用户的。
(5)用普通用户登录:
刷新页面获取当前登录态的数据包,复制下来当前用户的Cookie:
(6)找到之前超级管理员添加用户的数据包发送到Repeater,将Cookie替换为上方普通用户pikachu的Cookie,重放数据包后重定向可以发现已经进入登录态了:
(7)刷新页面,可以发现又多出来一个名为yy的用户,说明可以通过一个普通管理员的登录态重放超级管理员的操作,存在垂直越权漏洞:
查看后台代码:
总结
垂直越权在实际利用过程中比较困难,因为需要抓到超级管理员的操作然后重放。