理论基础
-
垂直越权漏洞介绍
垂直越权漏洞是指应用系统在处理各个角色业务功能时,并未对当前用户角色与该业务功能的权限标志进行判断,导致用户可越权访问非自身权限范围内的业务功能,造成越权操作。常见如:越权添加、修改、删除用户以及权限、越权访问系统管理功能等。
-
垂直越权漏洞原理
应用系统未正确验证用户身份(Cookie、Token等),导致功能接口可以越权访问。本质上为系统鉴权机制的缺陷。
-
测试方案
通过更换的某个 ID 之类的身份标识,从而使 A 账号获取(修改、删除等)B账号数据(高权限账户)。最关键的点就是定位鉴权参数,然后替换为其他账户鉴权参数的方法来发现越权漏洞。
- 常见工具
- JS接口搜集:浏览器插件-FindSomething
- WEB接口挖掘:URLFinder
- 越权类测试:Burp插件-Autorize
- 漏洞危害
- 数据泄露(个人隐私信息、账户相关信息等)
- 账户安全(通过水平漏洞修改账户信息)
- 系统安全(通过未授权访问可能修改某些应用系统特定功能)
- 进一步利用
- 垂直越权漏洞的防御
- 实施严格的访问控制:确保在应用程序的各个层面上实施适当的访问控制机制,包括身份验证、会话管理和授权策略。对用户进行适当的身份验证和授权,仅允许其执行其所需的操作。
- 验证用户输入:应该对所有用户输入进行严格的验证和过滤,以防止攻击者通过构造恶意输入来利用越权漏洞。特别是对于涉及访问控制的操作,必须仔细验证用户请求的合法性。
- 最小权限原则:在分配用户权限时,采用最小权限原则,即给予用户所需的最低权限级别,以限制潜在的越权行为。用户只应具备完成其任务所需的最小权限。
- 安全审计和监控:建立安全审计和监控机制,对系统中的访问活动进行监视和记录。这可以帮助检测和响应越权行为,并提供对事件的审计跟踪。
实践学习
漏洞环境以Pilot靶场为例:下载地址与部署教程
-
选取两个权限不同的账号
admin
和pilot
,登录pilot/123456
: -
抓包,输入手机号为:10086,点击修改即可修改自己的账号信息:
-
在不改变Token的情况下,将
username
参数修改为admin
,尝试修改高权限用户手机号: -
登录
admin
账号可以发现,信息已被垂直越权修改: