0x01 越权是什么?
不安全的直接对象引用允许攻击者绕过网站的身份验证机制,并通过修改指向对象链接中的参数值来直接访问目标对象资源,这类资源可以是属于其他用户的数据库条目以及服务器系统中的隐私文件等等。导致这种情况出现的原因是,系统在接受用户输入并利用输入信息获取对象之前没有对用户身份权限进行检测。
0x02 越权漏洞分类
分三类,如下
1.垂直越权
这种类型的越权就是可以在不同身份之间越权,比如你是普通用户,但是可以越权到管理员,甚至超级管理员
2.水平越权
这种类型的越权就是越权其他用户,比如说你要查看一篇邮件。但是有越权漏洞,却可以查看其他人的邮件
3.上下文越权
上下文越权就是说在某个程序需要执行3个步骤,而你却可以跳过其中某个步骤
0x03 挖掘方法
查询程序是否有分级处理(用户,代理,经销,管理员),这些用户是否拥有不同的功能?
检查cookie与参数中是否有权限验证机制
账户之间是否有不同的标识符
使用不同权限的账号确定自己能够使用的功能,然后使用低权限的账号尝试访问高权限的功能
如果垂直越权不成功可以尝试水平越权,使用两个相同权限的账号,访问自己相同的资源。然后使用一个账号访问另一个账号的资源
0x04 存在场景
以下情况是我遇到过的,欢迎补充。
1、菜单url越权访问,不同角色账号访问系统菜单url不一样,互相访问并未做限制。
2、订单/用户等信息遍历,未校验id是否归属于当前认证用户,修改id,能看到id对应的相关信息。
3、找回/修改密码,修改密码阶段未校验用户真实性。
4、交易流程,下单阶段未校验订单数量、价格。
0x05 小技巧
1、如果访问页面被403了,给请求的头里加一个X-Forwarded-For,设置值为127.0.0.1就可以绕过验证逻辑访问到页面了。
2. 空值处理 针对多参数值匹配查询,如UserID=11&userIDCard=2321312。。。 获取用户数据的时候将任意字段置空,看看程序是否对空值有校验。
0x06测试工具
Authz
Autorize
0x07 案例
(请扶墙)https://medium.com/bugbountywriteup/device-authorization-bypass-aa508c9193ed