记一次项目中的任意用户登录

背景描述

日常安服仔,帮公司测试yd的资产,该系统是hw的研发开发的,给了高低两个权限的测试账号,最开始看了半天也没找到啥漏洞,因此有点慌了。

image

漏洞发现过程

因为测试做了很多次了,但是不是我做的,因此我基本上又把所有功能点都点了一遍。

image

测试的时候发现,权限鉴定做的挺好的,但是无意中还是找到了一处水平的越权漏洞,但是今天的重点不是水平越权。

后面准备就把这个水平越权交了算了的,想着还是要去另外一个端口看看。

就在群里找人要了登录账号的验证码。

此系统正常登录流程是输入账号密码正确后,会要求填验证码,验证码正确后,才能登录。
image

在查看接口的时候,发现了一处跳转接口。
image

该接口中出现了一个非常熟悉的参数名userid,并且看密文形式,有点很像base64编码。

尝试解码后发现,还真是该账号的base64编码后的数据。

image

所以直接拿高权限账号去用户管理处采集了两个用户名。
分别是H**** 和J****

获取权限的方式是
第一步访问:
https://x.x.x.x/xxxxx/bjmobilelogin?userid=base64密文&xxxxxxxxxxxxxxxxxxxxx

第二步访问:
https://x.x.x.x/xxxxx/index.html

第一步是拿到用户的身份凭证,第二步是回到网站的首页,以便点击其他的功能点。

第一个账号
image

第二个账号
image

总结

之所以能发现这个漏洞,还是因为测试账号权限够大,测试人员没放过任何一个接口。两者都有,这个漏洞人人都能挖到。

Author: jdr
Link: https://jdr2021.github.io/2022/04/26/记一次项目中的任意用户登录/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.