1.当我拿到一堆账号依次登录后,发现大部分账号为普通管理员,操作权限极低,只有两个是超级管理员账号。于是马上想到可以测一波垂直越权漏洞。
3.然后登录普通管理员账号,把下面的Token和SESSION值替换成超管的,再刷新一下页面
4.最后就会发现普通管理员账号也有超管的权限了。
其实,这次的垂直越权测试已经很简单了,毕竟已经知道超管和普通管理员的账号密码。不过在大部分的垂直越权测试中,往往不可能提前知道管理员的账号信息,必须要获取一些较高权限才能发起的数据包请求。
所以能完成垂直越权的前提就是:
- 获取添加用户的数据包:这是进行垂直越权利用的基础,通过网站源码本地搭建自己去模拟抓取,或者通过盲猜等方法来获取数据包。
- 判断用户等级:如果前端代码界面部分根据用户等级进行可选显示,但没有进行正确的验证级别,那么就可能存在越权问题。
- 修改传输用户的编号、用户组编号或类型编号:如果在访问网站数据包中有这些值的传输,那么尝试对这些值进行修改,这是测试越权漏洞的基本方法。
那么,如何防止被垂直越权呢?
- 使用基于角色访问控制机制来防止纵向越权攻击,即预先定义不同的权限角色,为每个角色分配不同的权限,每个用户都属于特定的角色,即拥有固定的权限。当用户执行某个动作或产生某种行为时,通过用户所在的角色判定该动作或者行为是否允许。
- 对请求中的关键参数进行间接映射,避免使用原始关键参数名,比如使用索引1代替id值123等。
- 前后端同时对用户输入信息进行校验,双重验证机制。调用功能前验证用户是否有权限调用相关功能,执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限。
- 直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理。
- 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤。
原文始发于微信公众号(雾都的猫):揭秘垂直越权漏洞:某企业后台管理网站的安全隐患
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论