【SRC实战】未授权访问泄露上万条用户账号数据

admin 2026-08-10 04:59:26 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分享两起校园系统未授权访问漏洞实战案例。一处Vue后台管理系统因未对用户查询接口做登录拦截,攻击者通过前端JS提取接口直接获取管理员密码及746条用户信息。另一处微信小程序因使用OAuth2框架默认客户端凭证,攻击者可枚举分页接口获取15848条用户BCrypt哈希密码,并成功破解弱密码登录账户。建议加强接口权限验证、避免使用默认凭证。 综合评分: 88 文章分类: SRC活动,漏洞分析,WEB安全,安全意识,渗透测试


cover_image

【SRC实战】未授权访问泄露上万条用户账号数据

原创

Blimey029 Blimey029

N0n4m3 Sec

2026年8月8日 19:29 广东

在小说阅读器读本章

去阅读

郑重声明

任何网络安全测试活动均须事先获得明确授权。本公众号文章的内容源自作者日常积累,未经许可严禁转载。本文所提及的技术漏洞均已完成修复,文中涉及的技术方法仅作教学交流之用,严禁任何非法用途。因不当使用而产生的全部责任均由使用者自行承担。本文讨论的所有案例与技术内容,旨在提升读者的安全防护意识,协助构建更完善的安全防护体系,有效抵御潜在网络威胁。

前言

校园线上平台承载海量学生、教职工隐私数据,一旦接口权限管控出现疏漏,会造成大规模个人信息裸奔。本次分享两起真实的未授权接口信息泄露实战案例,覆盖Vue后台管理系统、基于OAuth2的微信小程序两类主流校园业务系统:

一处校园教学平台未对用户查询接口做登录拦截,任何人访问公开前端JS就能找到数据接口,直接拉取全体师生明文密码等信息;另一所高校小程序使用框架默认OAuth2客户端密钥,攻击者可枚举分页接口拿到上万条加密账号哈希,弱密码可被破解并登录用户账户。

正文

漏洞1:未授权信息泄露

直接访问URL:https://xxx.xxx.edu.cn:9001/#/index通过图标和哈希路由#知道该站是vue的,然后通过前端源码搜baseURL,baseURL是axios全局统一配置的后端接口根前缀,vue前后端分离项目会提前把完整后端域名+统一接口目录写在这里。

可以看到前端页面加载两个核心JS:chunk-vendors.xxx.js、app.xxx.js,chunk-vendors是Vue CLI 2/Vue CLI 4(配套Vue2) 打包的固定产物;Vue3现在主流用Vite打包,不会生成chunk-vendors这种命名文件。根据这个文件命名,就能初步锁定是 Vue2

接着继续全局搜page:function,为什么是 page:function ?

Vue 2.x的组件方法通常以方法名:function(){} 格式定义,页面列表查询功能普遍命名为page或list 。

结合前期从JS中提取的全局baseURL为https://xxx.xxx.edu.cn:9001/SEM,再拼接page:function代码段里暴露的相对请求路径/users与固定参数字段,最终组装得到完整用户列表接口:

/SEM/users?name=&userId=&page=&pageSize=

完整URL:https://xxx.xxx.edu.cn:9001/SEM/users?name=&userId=&page=&pageSize=

访问后获取到管理员的账号密码

“userId”: “admin”,

“password”:”newpass123″

利用获取到的管理员账号密码登录后可看到746条用户信息,包括姓名、身份证、登录密码等信息,可在编辑处进行查看

漏洞2:某EDU小程序未授权接口泄露15848条个人信息

进入目标小程序后,点击个人中心->登录

登录后会产生3个数据包,先看第一个数据包

| | | | — | — | | 字段 | 值 | | 接口路径 | /xxx/xxx/auth/oauth2/token | | Authorization | Basic bWxxxxxxxW5p |

解码客户端凭证(Authorization):bWxxxxxxxW5p → base64解码 → 为开源框架的默认客户端凭证

另外可以看到该小程序是基于Pig4Cloud框架的

此时再看第二个数据包,响应包有密码字段

因为是基于Pig4Cloud框架的RESTful设计规范,可枚举接口

| | | | | — | — | — | | 接口 | 状态码 | 结果 | | /xxx/xxx/app/appuser/list | 404 | 不存在 | | /xxx/xxx/app/appuser/page | 200 | ✅ 关键发现 | | /xxx/xxx/app/appuser/info | 200 | 用户信息接口 |

访问/xxx/xxx/app/appuser/page这个接口后,返回用户的账号密码

看到响应包底部,一共有15854名用户的详细信息,包括用户ID、用户名、真实姓名、账号密码等,其中密码采用BCrypt单向哈希算法

哈希格式分析:$2a$10$xxxxxx… → BCrypt算法,成本因子10

通过hashcat来尝试爆破:

hashcat.exe -D 2 -m 3200 -a 0 -o cracked_results.txt hashes.txt target_users_dict.txt

| | | | | — | — | — | | 参数 | | 说明 | | hashcat | – | 密码破解工具程序名 | | -D 2 | 设备类型 | 指定使用GPU 设备(1=CPU,2=GPU) | | -m 3200 | 哈希类型 | 指定哈希算法为BCrypt | | -a 0 | 攻击模式 | 指定字典攻击模式 | | -o cracked_results.txt | 输出文件 | 将破解结果保存到文件 | | hashes.txt | 目标文件 | 待破解的哈希文件路径 | | target_users_dict.txt | 字典文件 | 密码字典文件路径 |

成功爆破出来5个密码

此时再根据第一个数据包以及OAuth2.0协议规定的客户端认证方式,修改数据包为:

POST /xxx/xxx/auth/oauth2/token HTTP/2

Host: xxx.edu.cn

Content-Length: 68

Client-Toc: Y

Authorization: Basic bWxxxxxxxW5p

User-Agent: xxxx

Xweb_xhr: 1

Content-Type: application/x-www-form-urlencoded

Tenant-Id: xxx

Accept: */*

Sec-Fetch-Site: cross-site

Sec-Fetch-Mode: cors

Sec-Fetch-Dest: empty

Referer: https://xxx/page-frame.html

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

Priority: u=1, i

username=19xxxx70&password=19xxxx70&grant_type=password&scope=server

又因为都使用了Pig4Cloud框架的客户端凭证,Authorization都是Basic bWxxxxxxxW5p

因此登录成功

end


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:N0n4m3 Sec Blimey029 Blimey029《【SRC实战】未授权访问泄露上万条用户账号数据》

SRC常见越权场景(一) 网络安全文章

SRC常见越权场景(一)

文章总结: 本文总结预约类小程序中三种常见水平越权漏洞,包括院校订单查询删除、企业信息修改及订单取消。漏洞成因是后端未校验请求参数userid与JWT中用户ID
评论:0   参与:  0