一次普通的越权漏洞挖掘:从修改登录参数到遍历用户数据

「前情提要」

在对某小程序进行常规漏洞挖掘时,发现其存在全站统一弱口令与水平越权,可批量获取个人敏感信息,但是进入的过程很曲折。

「漏洞详情」

【1】初步登录测试

进入小程序登录页面后,发现登录方式仅支持手机号输入,且密码字段存在前端长度限制(最多6位),随机输入手机号并尝试使用弱口令 123456 进行登录。

image.png

【2】转向管理员账号探测

初次测试返回错误。在准备放弃时,推测:若全站均以手机号作为登录凭证,管理员在测试过程中需要频繁更换手机号,操作繁琐。于是尝试抓包修改登录请求参数,将 userName 字段由手机号改为 admin。

image.png

【3】登录成功,继续测试

修改后登录成功,获取管理员权限。尽管返回数据中 userName 为 admin、userId 为 1,但角色仍显示为“家长”。

很奇怪,不过不影响,毕竟进入了小程序的操作界面,可以继续测试了。

【4】水平越权遍历用户数据

登录后访问“我的”功能,抓包分析请求路径如下:

e5658bd0-57a9-4145-b312-c5da1a0d48c4.png

发现路径中包含可遍历的数字型参数,对该参数进行枚举测试,成功获取 1000+ 敏感信息。

image.png

【5】信息泄露*2

审查历史数据包时发现,/user/{userId} 路径中的用户ID同样可遍历,返回数据中包含 userName(即手机号)。

通过对该接口进行遍历,发现可获取小程序全部用户的手机号、身份证号等敏感信息,累计 1700+ 条。

image.png

【6】高权限账户登录

利用上述接口获取到的教师手机号,配合系统默认密码进行登录,成功进入高权限教师账户,同样可查看全部学生信息。

【7】其他漏洞挖掘成果

后续测试进一步确认存在对象存储桶的上传、覆盖、删除等未授权操作(但是可惜,重复了)。

同时由于教师可以编辑公告,公告可以解析标签,猜测可能存在XSS,但是由于这个小程序我看到一直有人在使用,就没有继续测试了。

「挖掘反思」

说实话,这次测试差点就半途而废了。刚开始看到登录框只能输手机号,密码还被限制在6位以内,我随手试了几个号加123456,全报错。又拿“联系管理员”那里的手机号试了一遍,还是不行。

但就在准备收手的时候,脑子里突然冒出一个念头:管理员自己平时怎么登录?总不能每次测试都换个真手机号吧,那得多麻烦?万一这个“手机号登录”只是前端演给我看的呢?

于是我抱着“试试又不会亏”的心态,把登录请求包里的userName从手机号改成了admin。后端直接放行,密码123456,登录成功。

后续的测试就顺理成章了:看到接口里带了个数字ID,试着遍历一下,1000+敏感信息到手;又发现/user后面的userId也能遍历,1700多条手机号和身份证全部拿下。

总之,漏洞本身是不难的,但是这次的漏洞挖掘让我印象深刻的,还是那个差点放弃的登录口。

温馨提示:本文内容仅用于合法授权的安全学习与研究交流,严禁用于未授权渗透测试、漏洞利用或任何违法行为。

涉及企业或平台的未公开漏洞信息,请遵循负责任披露原则,勿公开传播可直接复现的敏感细节。

如存在侵权、错误信息或不当内容,请联系站方处理,我们将及时核实并删除。邮箱:admin@baimaojianghu.com。