本文最后更新于464 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
逻辑漏洞图解:

一、越权漏洞基础
1.定义
是系统未正确验证用户权限,导致用户执行未经授权的数据访问或操作的安全问题。
2.分类
- 水平越权
同权限用户间非法访问他人资源,例如通过篡改URL参数中的用户ID获取其他用户的订单详情或个人信息。同时可能会以其他平级权限用户的身份来执行如删除、添加、修改等。 - 垂直越权
低权限用户访问高权限功能,如普通用户通过接口漏洞获取管理员权限或操作后台数据
3.常见越权方法
- 修改GET传参
- 修改POST传参
- 修改cookie传参
二、水平越权
两个相同级别的用户A、B,用户B通过某种操作拥有了用户A的权限

三、垂直越权
两个不同级别的普通用户A和管理员用户B,普通用户A通过某种操作拥有了管理员用户B的权限

四、漏洞案例
1.水平越权
1)点击提示,登录lucy账户

2)点击查看用户信息,可以看到用户信息

发现查看用户信息是通过get方式传递username参数,可以尝试修改参数值来查看别人的信息
3)尝试修改username为lili

发现成功显示lili用户的信息, 因为lili和lucy是同水平用户,存在水平越权漏洞
部分关键代码:

2.垂直越权
1)点击提示,发现有两个账户,一个是普通用户,一个是超级用户

2)普通用户登录,发现只有查看权限

3)再登录到admin用户

发现有查看、添加、删除
三个功能的url如下:
- 查看
http://127.0.0.1/pikachu/vul/overpermission/op2/op2_admin.php
- 添加
http://127.0.0.1/pikachu/vul/overpermission/op2/op2_admin_edit.php
- 删除
http://127.0.0.1/pikachu/vul/overpermission/op2/op2_admin.php?id=1
4)再次切换成pikachu用户,在浏览器输入查看用户功能的url

发现需要登录,说明这里不存在越权漏洞
5)输入添加用户的url

发现可以进入,尝试创建一个用户
6)登录admin用户查看是否创建成功

发现创建成功,说明这里存在越权漏洞
7)登录pikachu用户,输入删除用户的url
将鼠标悬浮在删除键上面,可以看到url

登录pikachu用户,输入url,发现跳转到登录页面

8)登录admin用户查看用户是否删除

发现没有删除成功,说明这里不存在越权漏洞
注意:在测试删除等功能时,一定要使用自己创建的用户,不能删除已有用户
五、漏洞修复
- 完善用户权限体系,要知道哪些数据对于哪些用户,哪些数据不应该由哪些用户操作
- 鉴权,服务端对请求的数据和当前用户做校验
- 不要直接使用对象的实名或关键字
- 对于可控参数进行严格的检查和过滤