原理
越权漏洞是一种常见的逻辑安全漏洞。是服务器端对客户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定,导致攻击账号拥有了其他账户的增删改查功能。即系统资源被访问时,未验证当前用户的身份。
分类
- 平行越权:权限类型不变,权限ID改变。(同样权限的用户角色)
- 垂直越权:权限ID不变,权限类型改变。(不同权限的用户角色)
- 交叉越权:既改变ID,也改变权限。
危害
- 获取用户的敏感信息。(水平越权:用户基础信息通过一个接口查询,而这个接口如果可以越权,通过对用户id参数的遍历即可获取所有用户的信息。相当于变相脱裤,并且难以被防火墙发现:和正常访问请求没有区别,也不会包含特殊字符。)
- 获取系统管理权限。(垂直越权)
黑盒测试
- 找到校验的用户身份id,id可能出现在数据包的参数里,也有可能出现在cookie里。如腾讯业务大部分是cookie里uin参数。有些站点业务会生成无规则的身份验证id或者没有id只有cookie_session增加难度。
- 网站至少有用户、管理员两种角色。如id 001是管理员,当前登录的用户是id 110(用户角色),可以在修改年龄功能提交时,抓包修改数据包id值为120,改掉id为120用户的年龄。但是修改id为001(管理员)并不能改掉001用户的年龄即为水平权限。如果可以改掉001用户的年龄即是垂直权限。
白盒测试
- 检查所有的功能函数是否做了权限判断。
- 判断权限的功