CCS 26 | 当越权能力开始“滚雪球”:移动应用标识交换背后的安全陷阱
原创 复旦白泽战队 2026-11-04 09:58 上海

一次看似普通的用户主页访问,竟可能成为接管他人账号的起点?在一些移动应用中,一次查询获得的线索,可能成为下一次访问的入口。

复旦大学系统软件与安全实验室的研究成果Foot in the Door: Uncovering the Multi-Step Authorization Exploitation in Mobile Applications发表于国际网络安全顶级学术会议ACM CCS 2026,首次系统研究了移动应用中的多步授权利用(MAX)问题,并开发了自动化检测工具,在大规模真实应用中验证了此类漏洞的普遍性及安全危害。

01 | 隐藏的越权风险
现代移动应用通常包含多个业务服务,不同服务往往使用不同的标识符来管理用户资源。例如,在购物应用中,用户可能需要先通过用户 ID 获取订单编号,再利用订单编号查询购买记录。这种通过已有标识符获取其他标识符的方式,被称为跨服务标识交换。
这一机制简化了不同服务之间的资源管理,却也使多个接口之间形成了相互依赖的关系。如果标识交换过程中的某个环节缺乏必要的授权校验,攻击者便可能利用前一步获取的标识符,继续访问后续服务,逐步扩大越权访问范围。
这类漏洞的隐蔽性在于,单独分析每个接口时,往往难以发现完整的攻击路径。例如,前一个接口可能只返回不直接包含敏感信息的订单标识,而后一个接口所需的订单标识又难以直接猜测。传统检测方法通常聚焦于单个接口的越权行为,容易忽略多个接口之间的标识交换关系,从而遗漏这类多步越权风险。

02 | 从普通用户ID到账户接管
我们在一款真实购物应用中发现了典型的MAX攻击案例。正常情况下,应用首先通过userid获取openid,再利用openid获取访问令牌token,最终访问用户的个人信息和购买记录。
尽管openid和token难以直接猜测,攻击者仍可能通过以下步骤完成攻击:
伪造用户ID:修改请求中的userid,获取目标用户的openid。
交换访问令牌:利用获得的openid,进一步获取目标用户的token。
访问敏感资源:使用该令牌获取目标用户的个人信息,甚至接管其账户。

MAX攻击的关键在于:攻击者无需直接破解复杂的访问凭据,而是通过信息交换链条逐步扩大访问能力,最终获取到下游敏感资源的访问权限。
03 | 如何自动发现隐藏的多步越权漏洞?
为自动发现隐藏在多个接口之间的MAX漏洞,我们设计了结合静态分析与动态测试的检测工具MAXChecker,主要包含三个阶段:
(1)标识符交换识别。通过静态数据依赖分析,识别不同网络请求之间的标识符传递关系,并构建标识符交换图(IDEG)。
(2)多步攻击构造。根据标识符交换图指导动态探索,构建潜在攻击链,并通过程序切片恢复加密、拼接、签名等参数变换逻辑,生成有效攻击请求。
(3)漏洞动态验证。采用双账户差分测试,判断一个账户能否通过完整攻击链访问另一账户的敏感信息,从而确认漏洞是否真实存在。

通过上述设计,MAXChecker 实现了从标识符交换关系识别到多步攻击验证的自动化分析。
04 | 真实移动应用中的安全风险有多严重?
在真实移动应用和微信小程序的大规模安全分析中,我们共发现362款存在MAX漏洞的应用,涉及购物、娱乐、教育、政务、医疗等多个领域,表明这类安全问题广泛存在于不同的移动应用场景中。

这些漏洞可能导致严重的隐私信息泄露。例如,在部分教育类应用中,攻击者可能获取学生的家庭住址及家庭成员信息;在政务和司法服务应用中,可能越权访问他人的司法文书、驾驶证、结婚证等敏感资料。此外,部分漏洞还允许攻击者篡改他人的业务数据,威胁信息的真实性与完整性。
更严重的是,MAX攻击还可能从数据泄露进一步发展为账户接管。研究发现,34款应用存在账户接管风险,攻击者可能通过多步标识交换获取其他用户的访问凭据,最终控制其账户。
我们已向相关厂商负责任地披露漏洞,截至论文撰写时,获得13家厂商确认,以及14个CNVD和9个CVE漏洞编号。
结语
从一次不起眼的信息查询,到最终触及他人的敏感数据,微小的授权疏漏也可能沿着服务之间的关联不断放大,演变成严重的安全危机。只有跳出单个接口的视角,审视整个访问链条,才能发现那些隐藏在环环相扣的业务流程中的安全隐患,避免薄弱的一环成为整个系统的突破口。
作者介绍
供稿:高晨、崔璐凯
排版:高晨
责编:董佳仪
审核:洪赓、张琬琪
复旦白泽战队
一个有情怀的安全团队
还没有关注复旦白泽战队?
公众号、小红书搜索:复旦白泽战队也能找到我们哦~
本文转载自微信公众号「复旦白泽战队」,查看原文。版权归原作者所有,如有侵权请联系删除。
