越权漏洞(浅谈)

越权漏洞(浅谈)

风险级别:高风险

风险描述:服务器端对用户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定,导致恶意攻击者账号拥有了其他账户的增删改查功能;

风险分析:服务器过分信任用户提交的数据请求并且未对用户权限进行判定,可能导致恶意攻击者拥有其他用户的操作权限,平行越权可导致相同权限的用户之间可以进行增改删查等功能;垂直越权可导致低权限的用户拥有着高权限的执行操作能力;

在进行用户操作时,通过Session判断该用户是否具有该功能的操作权限



越权的定义

如何理解越权漏洞?(pikachu描述)

在这里插入图片描述

为什么会出现越权?

通常情况下,web应用程序提供功能流程是:

登录—>提交请求—>验证权限—>数据库查询—>返回结果

如果在“验证权限”环节存在缺陷,那么便会导致越权
一种常见的存在越权的情形是:Web应用程序的开发者安全意识不足,认为通过登录即可验证用户的身份,而对用户登录之后的操作不做进一步的权限验证,进而导致越权问题。

越权漏洞
分为水平越权、垂直越权、上下文越权

水平越权:

Web应用程序在接收到用户的请求时,我们在增删改查某条数据时候,没有判断数据所对应的用户,或者在判断数据的用户时是通过从用户表单参数中获取userid来实现的,我们可以通过修改userid来实现水平越权。

漏洞修复建议:如果使用token来作为后续身份识别的令牌的话,应该是在提交密码或者验证码的数据包中而且验证通过后返回token,否则可以利用token直接进行越权访问;


垂直越权

垂直越权又叫做权限提升攻击,具体原因就是web应用没有做用户权限控制,或者只是在菜单上做了权限控制,导致恶意用户只要猜测到其他管理页面的URL,就可以访问或者控制其他角色拥有的数据或者页面,达到权限提升的目的。

漏洞修复建议:做好权限控制;



漏洞复现(采用pikachu靶场)

一. 水平越权

打开pikachu靶场,进行水平越权测试,首先我们登陆普通用户,查询普通用户信息;

在这里插入图片描述
在lucy账户信息下,修改url中的请求,测试水平越权,可以查到lili的信息。

在这里插入图片描述
后台代码分析:

没有使用session来校验,而是使用的传进来的值,权限校验出现问题,这里应该跟登陆状态进行绑定。

在这里插入图片描述


二. 垂直越权

登陆超级管理员权限,新增用户信息后,使用代理抓包,再次修改数据包,尝试在brup内新增普通用户;

在这里插入图片描述

退出登陆后,对数据包进行重放,发现cookie已经失效,创建用户操作没有成功!!!

在这里插入图片描述
我们尝试登陆普通用户,获取cookie:

在这里插入图片描述
使用普通用户cookie,重放管理员用户新建用户操作:

在这里插入图片描述
普通用户身份下添加用户成功:实现垂直越权!

在这里插入图片描述



分类与定义:

根据对数据库的操作进行分类,可分为:

越权查询、越权删除、越权修改、越权添加等。

根据维度进行分类,可分为:

平行越权、垂直越权、交叉越权、上下文越权;

平行越权:权限类型不变,权限ID改变;
垂直越权:权限ID不变,权限类型改变;
交叉越权:权限类型改变,权限ID也改变。

这里引用大佬博客的一张思维导图:
在这里插入图片描述

越权漏洞危害

越权漏洞的危害与影响主要是与对应业务的重要性相关,如果存在平行越权,通过对用户ID的遍历,就可以查看所有用户的敏感信息,这也是一种变相的脱裤,而且很难被防火墙发现,因为这和正常的访问请求没有什么区别,也不会包含特殊字符,具有十足的隐秘性。

如何检测越权漏洞

通过定位鉴权参数,然后替换为其他账户鉴权参数的方法来发现越权漏洞。


越权漏洞修复方案

1、基础安全架构,完善用户权限体系。要知道哪些数据对于哪些用户,哪些数据不应该由哪些用户操作;

2、鉴权,服务端对请求的数据和当前用户身份做校验;

3、不要直接使用对象的实名或关键字。

4、对于可控参数进行严格的检查与过滤!

5 、不能只根据用户 id 去搜索,应该再次进行身份验证。

6、可以从用户的加密认证 cookie 中获取当前用户 id,防止攻击者对其修改。或在 session、cookie 中加入不可预测、不可猜解的 user 信息。

7、在每个页面加载前进行权限认证。

8、特别敏感的操作可以让用户再次输入密码或其他的验证信息。

参考博客:
https://www.anquanke.com/post/id/84892
https://www.jianshu.com/p/1227b390bb9c
https://blog.csdn.net/lyc1401070320/article/details/83410065

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值