从微信扫描登录到账号接管,细节实战

admin 2026-02-03 01:13:15 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分享了实战案例:一是通过修改参数实现人脸系统任意账号注册;二是利用微信扫码登录的WebSocket广播漏洞,获取他人JWT凭证以接管账号。核心发现是WebSocket配置不当导致凭证泄露,建议开发者严格鉴权并避免广播敏感令牌。 综合评分: 91 文章分类: 渗透测试,WEB安全,漏洞分析,SRC活动


cover_image

从微信扫描登录到账号接管,细节实战

原创

锐鉴安全 锐鉴安全

锐鉴安全

2026年2月2日 07:04 广东

zuo’zheg’weigweiID

zai

cizhi’cizhici

s

“证书站的未授权漏洞,忆校园青春阅edu证书站的未授权漏洞,忆校园青春

点击蓝字 关注我  共筑信息安全

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任!

1

背景

本次实战的案例,源于某高校的人脸采集系统,听着都感觉危害很大,因为全是敏感信息,如身份证、人脸等,拿到就是高危漏洞。从无账号到登录系统,靠的就是fuzz,详细的过程见实战过程。

2

实战过程

通过一系列的信息收集,高校的人脸采集系统引起了作者注意,为什么?因为有敏感信息。

连Hunter、Fofa都没索引到这个系统,作者靠灯塔拿到了,灯塔确实好使,关键还免费,需要的师傅可以文末获取下载链接!

系统的首页如下图,可以看到,只用一个登录按钮。

看下findsomething,也没有找到“注册”功能相关的关键字,同时也跑了下接口,并无接口未授权问题。

本次案例的关键操作来了,首先抓包观察下登录系统的数据包情况,随意输入账号密码,点击登录。

可以看到登录的数据包中有个login关键字,秉着试试的心态!

作者将login改为register,惊喜时刻,注册账号成功。

使用注册成功的账号登录系统。

可以看到获取到了身份凭证。

登录到了个人信息首页。

任意用户注册账号漏洞拿下,这个fuzz操作确实有点妙。都登录系统,肯定得把全量的功能测一遍,一般可以测试sql注入、越权、文件上传等漏洞。

co

点击蓝字 关注我  共筑信息安全

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息、工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任!

1

背景

日常开展某站点SRC测试,在开展深度测试后,未发现漏洞,最终在复盘分析阶段,无意发现微信扫描登录导致任意用户接管的漏洞。

非常有意思的一个实战案例,各位师傅不要错过了,看完让你脑洞大开。

接下来看实战!!

2

实战过程

一开始的登录页面是这样的,有个注册账号的功能,直接注册账号。

注册完账号后,登录进行测试,测了所有的功能,各功能的鉴权做的比较完善,连一个越权都找不到。

正当作者以为本次的证书站挖掘会“无功而返”时。一个小习惯,打开了漏洞之门。通过观察历史数据包,发现webscoket的历史记录了出现了以下内容。

这是啥玩意?怎么我的请求websocket记录里会出现别人的jwt。作者看到这鉴权凭证时也是一脸懵逼。

通过以上的提示,可以看到,是微信扫描登录成功后的提示,那么这个问题肯定跟微信扫描登录有关,于是又回到了微信扫描的功能。如下图,首页也是有个微信扫描登录的功能。

使用作者本人的手机扫描,看下登录包的情况,分析下过程。可以看到,扫描登录后,后台确实会返回个人的jwt。

进一步分析,作者怀疑是websocket广播导致的jwt泄露。

啥意思,首先这个扫描登录,系统是使用websocket协议去后端获取手机端微信扫描登录的情况。假设你登录了,建立了websocket连接接,若有其他人也通过微信扫描登录,那么你的websocket通道就会收到别人的登录后的信息,也就是之前看到的jwt。

接下验证作者的想法,进行漏洞复现,三步完美复现。复现需使用账号A(188),账号B(186),浏览器A,浏览器B,复现时是一一对应的。

步骤1:

通过在浏览器A中,首先打开1个登录页面。

在虚拟机的浏览器中B中打开登录页面,并在此环境中扫描登录,假设用186的用户,先建立websocket通道,如下图。在此环境中,使用bp抓包,观察wetsocket的回包情况。

步骤2:

使用用户A的手机假设为188开头,在浏览器A中使用手机扫描登录,并在微信小程序中点击登录。如下图,登录成功。

此时,会在虚拟机中的bp中websocket的历史记录中,泄露用户A的jwt。如下图,以BOI结尾。

可以看到浏览器A已经登录成功,在控制台中观察jwt,与在虚拟机中bp中泄露的jwt一致。最后三位都是BOI。

通过以上的操作,证明通过已建立的websocket通道,可以拿到其他人微信扫描登录的人的jwt。

步骤3:在虚拟机的浏览器B中接管用户A的账号。

使用用户B手机号扫描登录。可以看到登录了用户B的账号,就是步骤1中的186用户。

点击B账号的个人中心。在burp中替换jwt为用户A的jwt,可以查到用户A的信息,接管用户A。可以查到A用户的手机号、身份证号等信息。可以看到手机号为188开头了。

至此本次实战案例结束!

3

经验总结

很有意思的一个微信扫描登录的案例。一般的微信扫描等可以使用http协议,从前端去请求后端,获取用户手机扫码的登录情况。

但这个案例中使用websocket的,着实比较少见。关键这个websocket配置的有问题,导致可以广播,导致其他用户凭证泄露,进而会造成用户接管。

往期好文推荐

更新|帆软、用友、泛微、蓝凌等常见OA系统综合漏洞检测工具

Web渗透测试综合工具

SRC必备的高效资产收集方法

Swagger漏洞检测工具

Java漏洞专项检测工具

渗透测试集成工具

记一次”高危”逻辑漏洞挖掘实战

AntiDebug_Breaker最新版,Hook必备

有趣的Fuzz+BucketTool工具等于双高危!

推荐一款资产“自动化”筛选工具

记一次SRC渗透测试实战

EDU SRC学号、账号等敏感信息收集工具

Jeecg-boot最新漏洞检测工具

js.map文件还原组合工具

Nacos漏洞检测专项工具,攻防必备

微信公众号,微信小程序,钉钉,飞书等第三方平台接管工具

经典的前端鉴权绕过漏洞

记一次SRC支付漏洞实战

入交流群方式:回复”加群”


免责声明:

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

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

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

本文转载自:锐鉴安全 锐鉴安全 锐鉴安全《从微信扫描登录到账号接管,细节实战》

评论:0   参与:  0