越权漏洞
越权访问漏洞示意图
==================================================================================================================================================
一、越权访问漏洞简介
1.类型
水平越权:通过更换的某个ID之类的身份标识,从而使A账号获得(增删查改)B账号的数据
垂直越权:使用低权限身份的账号,发送高权限账号的请求,获得其高权限的操作
未授权访问:通过删除请求中的认证信息后重放该请求,依旧可以访问或者完成操作
2.修复方案
(1)前后端同时对用户输入信息进行校验,双重验证机制。
(2)调佣功能前验证用户是否有权限调佣相关功能
(3)执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
(4)直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理
二、水平越权
1.定义
假设用户A和用户B属于同一角色,拥有相同的权限等级,他们能获取自己的私有数据(数据A和数据B),但如果系统只验证了能访问数据的角色,而没有对数据做细分或者校验,导致用户A能访问到用户B的数据(数据B),那么用户A访问数据的这种行为就叫做水平越权访问。
2.如何知道其他用户ID或用户名
(1)通过网站的注册功能,通过注册一些用户名来判断是否存在,若这个用户存在,那么这个就是他的用户名,通过用户名寻找它的ID
(2)通过网站访问个人空间,主页等地方,看见个人的用户ID
具体结合实际情况进行
三、垂直越权
1.定义
垂直越权是一种"基于URL的访问控制"设置引起的漏洞,又叫权限提升攻击。例如:有A(Admin)B(普通用户),现在B通过一些特殊的方式使得获取到了A的权限。特点就是使用了低权限身份的账号,发送高权限账号才有的请求,获得其高的权限操作,通过删除请求中的认证信息后修改数据包后重新放改请求,依旧可以访问或完成操作。
2.利用前提条件
获取一些较高权限才能发起的数据包请求,比如添加用户的数据包
3.数据包来源
(1)抓包
(2)网站源码,若这个网站是CMS搭建的,就在信息收集的时候下载CMS远吗,本地搭建模拟,抓包
(3)盲猜,根据她的界面等网站情况自己去构造
四、Pikachu复现
靶场对越权漏洞的讲解
1.水平越权
(1)根据提示进行登录
(2)通过URL可以看见信息是通过明文传输的,所以我们可以通过在URL地址栏修改用户名尝试进行越权
因为lucy和lili都属于同一级别的用户,但是通过修改地址栏的用户名之后进行访问且成功,说明存在水平越权漏洞
2.垂直越权
同样根据提示显登录管理员账号
(2)点击添加用户,进行添加用户信息,但是不点创建
(3)打开BP之后,点击创建进行抓包,然后送入Repeater,然后退出管理员账号,再重新再Repeater中放包
可以看到用户添加成功