漏洞概述
本次实战测试中,目标APP存在严重的业务逻辑缺陷,导致攻击者可批量接管任意用户账号,并可获取大量未脱敏的敏感信息。
影响范围:
- 任意账号接管:攻击者可通过遍历方式,获取并冒用任意用户的身份凭证。
- 敏感信息泄露:手机号、真实姓名、住址、身份证号等敏感数据在接口中明文返回。
- 权限越权:利用高权限账号的令牌,可执行大量本不应被允许的敏感操作。
本技术研究仅用于安全防御技术探讨,请严格遵守《网络安全法》等法律法规,切勿用于非法用途。
漏洞利用实战:任意账户接管与令牌窃取
第一步:信息收集与参数获取
首先访问目标APP,随意登录一个账号。

进入个人中心,尝试修改昵称,并抓取相关数据包。


第二步:挖掘用户ID遍历点
同时,访问该APP关联的小程序,点击“切换账号”功能。

选择“添加学员”,在输入框中按照既定规则(如“地域代码+多位数字”)进行查询。以学号NJ5222****42为例。



此时,观察抓取到的数据包,可以发现一个关键变量 studentId,该值即为目标学员的唯一标识。


通过此接口,攻击者可遍历获取大量有效的studentId。
第三步:构造权限提升请求
切换至另一个关联的“服务号”小程序,进行“购买产品”操作,并抓取登录或身份验证请求包。


分析数据包,发现其中存在一个参数(例如extUserId)用于标识用户。将第一步中获取的studentId(或其他映射出的userId)替换到此参数中。



替换后发送请求,若服务端校验逻辑存在缺陷,便会返回对应该studentId(即目标用户)的令牌(Token)。

第四步:完成账号接管
回到主APP的登录流程。随意输入账号密码发起登录请求,并拦截该请求。

将整个登录请求的数据包,替换为第三步中获得的、带有目标用户有效令牌的数据包。发送请求并快速拦截其响应。

在响应包中,即可获取到目标用户的完整登录态信息,从而成功接管该账号。这通常是由于脆弱的JWT(JSON Web Token)实现或会话管理不当导致的关键漏洞。



漏洞危害总结
- 核心业务沦陷:攻击者可批量窃取用户令牌,实现大规模账号接管。
- 数据全面泄露:学员信息、课程内容等核心数据面临泄露风险。
- 业务风险激增:恶意攻击者可能利用高权限账号进行破坏性操作,如篡改数据、发布不良信息等,严重威胁平台业务安全与声誉。此案例深刻揭示了移动应用在身份认证与会话管理层面进行严格安全测试的必要性。
|