一文通关水平越权漏洞「文末小彩蛋」

2023-10-21 12:51:17 浏览数 (1)

越权作为SRC中最常见的漏洞,今天让我们来学习一些SRC中实战的越权案例以及一些越权漏洞挖掘的小技巧。

越权分为「水平越权」「垂直越权」,在某些概念上,也包括「权限绕过」

水平越权的概念:「权限相等者互相越权」

比如:**课堂中的学员和学员之间的越权、企业管理者和企业管理者之间的越权、**用户和用户之间的越权、**电商和电商之间的越权...

身份分析案例

https://******.*****.com/

我们来分析一下这个平台

「问题1:首先搞明白我是谁?」

在此平台中,我是一个创作者,可以创作文章、视频等内容

「问题2:我能水平越权到谁?」

我可以水平越权到其他创作者,其他创作者所创建的文章、视频等内容

「问题3:我怎么证明我越权成功了呢?」

使用A/B两个测试账号,使用A账号成功增删改查到B账号等数据。

「关键点:使用两个浏览器,登陆A/B两个账号,进行越权测试」

下面给几个实战SRC的案例,以加深大家对越权的理解。

某站越权1:

「某站仪表盘编辑标签处越权漏洞」

编辑标签处存在越权漏洞,可以通过可遍历的mainId获取其他用户的xx信息、xx信息等等...

登录账户A,访问仪表盘

编辑标签处抓包

「这里我的测试方法是:」获取报文后,放入Repeater,然后修改mainId,发现获取到的不是自己的文章。可以登陆B账号创建一个文章,在同样的地方抓到同样的报文,使用B账号的mainId进行验证,发现漏洞存在。

某站越权2:

点击编辑,查看burp报文的history

找到此post接口,pageId处存在越权,可以查看其他企业仪表盘大量信息。

返回包中有报表信息泄露。

上面两个是简单的数字型越权漏洞,下面我们看一些复杂点的。

某站越权3:

编辑处抓包:

adminUserIdList处存在越权漏洞,添加其他用户id可将任意用户加入自己的企业,然后通过刷新页面获取以下接口可获取全站用户数据。

但是,此用户id过长,且无明显的增长规律,通常称为「不可遍历ID」

这就导致了此处虽然存在越权,但是造成的危害有限。

那么如何进行使这个危害扩大化呢?

扩大不可遍历ID越权的危害

(在尝试以下方法前,要现尝试发现此id是否存在规律,有些id虽然长,但是呈递增/递减趋势,或者存在一定的规律性,即为可遍历ID)

「way1:利用可遍历ID的越权获取不可遍历的ID」

如:使用可遍历的gourpId获取不可遍历的企业id、bizid和用户id

此处就获取到了不可遍历的用户id

「Way2:利用接口报错获取不可遍历ID」

通过可遍历id的接口报错,获取不可遍历id,然后利用不可遍历的corpid进一步进行越权测试。

「Way3:不可遍历ID为公开id」

编辑某文件处存在越权漏洞,越权存在的id为不可遍历ID

分享此文件时,查看文件的路径处出现此id,说明此处id为公开id,公开作品可被任意修改。

其他越权案例

路径处的越权

除了通常的GET传参、POST传参处可能存在越权问题,「路径处」也可能存在越权漏洞,如以下报文

某OKR平台,在A账户修改OKR处抓包,获取到一个PATCH包,其路径处516668处存在越权漏洞,通过修改此id可以越权修改其他用户KR的内容。

同样如,可越权获取全站工作事项详情:

都是通过遍历路径中的id来进行越权操作的。

多次传入json的越权

某处通知功能,选择通知人后保存的时候抓包,获取如下报文。

如果我们正常只选择一个用户,只有一个json传入,如{"uid":89045}, 我们手动传入多个uid,由于此id可遍历,可以给全站用户发送通知,并在返回包中包含用户信息,造成信息泄露。

滞空参数值造成的越权漏洞

进入某小程序,点击地址管理处查看history报文

滞空其header头中的memberxxx和openxxx两个字短,即可回显所有收货地址。

滞空参数也可用于传参中,如get、post传参的传参值,也可能会导致返回所有数据的问题。

关于水平越权,还有很多精妙的小技巧和漏洞挖掘手法,但是最本质的对与目标站点权限的理解,自己要去对每一个细节点都去进行尝试,一定会有所收获。

0 人点赞