1.1. 缝隙原理
越权缝隙是指应用程序未对当前用户操作的身份权限进行严厉校验,导致用户能够操作超出自己办理权限规模的功用,然后操作一些非该用户能够操作的行为。简略来说,就是攻击者能够做一些原本不该他们做的事情(增删改查)。
1.2. 缝隙分类
主要分为 水平越权 和 笔直越权 两大类
1.2.1. 水平越权
发生在具有相同权限等级的用户之间。攻击者经过使用这些缝隙,拜访其他用户具有的资源或履行与其权限等级不符的操作。
1.2.2. 笔直越权
发生在具有多个权限等级的系统中。攻击者经过使用这些缝隙,从一个低权限等级跳转到一个更高的权限等级。例如,攻击者从普通用户身份成功跃迁为办理员。
1.3. 缝隙举例
1.3.1. 水平越权
假定一个在线论坛应用程序,每个用户都有一个唯一的用户ID,并且用户能够经过URL拜访他们自己的帖子。应用程序的某个页面的URL结构如下:
https://example.com/forum/posts?userId=<用户ID>
应用程序使用userId
参数来标识要显示的用户的帖子。假定Alice的用户ID为1,Bob的用户ID为2。
Alice能够经过以下URL拜访她自己的帖子:
https://example.com/forum/posts?userId=1
现在,假如Bob意识到URL参数是可变的,他或许测验修正URL参数来拜访Alice的帖子。他将测验将URL参数修正为Alice的用户ID(1):
https://example.com/forum/posts?userId=1
假如应用程序没有正确施行拜访操控机制,没有验证用户的身份和权限,那么Bob将成功地经过URL参数拜访到Alice的帖子。
1.3.2. 笔直越权
假定一个电子商务网站,有两种用户角色:普通用户和办理员。普通用户有限的权限,只能检查和购买产品,而办理员则具有更高的权限,能够添加、修改和删除产品。
在正常情况下,只有办理员能够拜访和履行与产品办理相关的操作。但是,假如应用程序没有正确施行拜访操控和权限验证,那么普通用户或许测验使用笔直越权缝隙提高为办理员角色,并履行未经授权的操作。
例如,普通用户Alice或许意识到应用程序的URL结构如下:
https://example.com/admin/manage-products
她或许测验手动修正URL,将自己的用户角色从普通用户更改为办理员,如下所示:
https://example.com/admin/manage-products?role=admin
假如应用程序没有进行足够的验证和授权检查,就会过错地将Alice的角色更改为办理员,然后使她能够拜访和履行与产品办理相关的操作。
1.4. 缝隙损害
具体以实际越权的功用为主,大多损害如下:
- 数据走漏:攻击者能够经过越权拜访灵敏数据,如个人信息、财务数据或其他灵敏事务数据。这或许导致违反隐私法规、信用卡信息走漏或个人身份盗用等问题。
- 权限提高:攻击者或许使用越权缝隙提高其权限等级,获得系统办理员或其他高权限用户的特权。这或许导致对整个系统的彻底操控,并进行更广泛的恶意活动。
1.5. 修正主张
- 施行严厉的拜访操控:确保在应用程序的各个层面上施行恰当的拜访操控机制,包含身份验证、会话办理和授权策略。对用户进行恰当的身份验证和授权,仅答应其履行其所需的操作。
- 验证用户输入:应该对一切用户输入进行严厉的验证和过滤,以防止攻击者经过构造恶意输入来使用越权缝隙。特别是关于触及拜访操控的操作,必须仔细验证用户请求的合法性。
- 最小权限准则:在分配用户权限时,选用最小权限准则,即给予用户所需的最低权限等级,以约束潜在的越权行为。用户只应具备完结其使命所需的最小权限。
- 安全审计和监控:树立安全审计和监控机制,对系统中的拜访活动进行监视和记录。这能够帮助检测和响应越权行为,并提供对事情的审计盯梢。