多值参数污染与大小写绕过导致账号接管
原创
游山玩水
游山玩水
山水SRC
2026年10月22日 08:21
河南
去阅读
免责声明
本公众号分享的所有渗透测试技术文章仅面向合法授权的安全测试、学习交流与研究用途。读者必须确保自身行为符合《网络安全法》等相关法律法规,严禁将其用于任何未授权攻击等非法活动。因不当使用或传播相关内容所引发的任何法律责任与风险,由行为人自行承担,本公众号(或本人)概不负责
前提
技术性描述
① 邮箱更新接口在修改邮箱时会对新邮箱进行唯一性校验,但该校验存在两个缺陷:一是面对多值参数(如重复提交 email 参数或使用分隔符)时,仅校验其中某一个值,并未对所有值进行一致处理;二是唯一性校验采用大小写敏感比较,而登录、找回密码等账号匹配功能却使用大小写不敏感方式。
② 攻击者可构造包含受害者邮箱和自有邮箱的多值参数,使唯一性校验检测到自有邮箱未被占用而通过,但实际写入数据库的却是受害者邮箱;或直接提交受害者邮箱的大小写变体,系统认为其未被占用而允许更新,但由于账号匹配不区分大小写,该变体最终关联到受害者账号。
③ 上述缺陷导致攻击者可将本人账号邮箱覆盖为受害者邮箱或其变体,随后利用“忘记密码”功能接管受害者账号。
通俗易懂
① 系统修改邮箱时,会检查新邮箱是否被别的账号占用。但检查有两个漏洞:如果一次提交两个邮箱,它可能只检查其中一个;或者它对字母大小写很敏感,把“小写邮箱”和“大写邮箱”当成两个不同的邮箱。
② 攻击者可以提交受害者邮箱和自己邮箱两个值,系统检查自己邮箱没人用就放行,实际却把账号邮箱改成了受害者邮箱;或者把受害者邮箱的大小写改一改,系统误以为这是新邮箱,允许修改,但后续登录时系统不区分大小写,依然能对上受害者账号。
③ 等邮箱被覆盖后,攻击者点击“忘记密码”,输入这个邮箱,就能收到重置密码链接,直接接管受害者的账号。
测试流程
- 准备攻击者账号A,目标受害者账号B及其邮箱。使用A登录,进入修改邮箱功能。
- 正常提交受害者邮箱,确认系统提示“邮箱已被占用”,证明唯一性校验存在。
- 抓取该修改请求,将其构造为多值参数形式,同时提交受害者邮箱和攻击者自有邮箱,发送请求,观察是否返回成功。
4.若多值参数无效,则改为提交受害者邮箱的大小写变体,如将[email protected] 改为 [email protected],发送请求,观察是否返回成功。
5.确认A的邮箱更新成功后,退出A,进入登录页的“忘记密码”流程,输入受害者邮箱或其大小写变体,尝试获取密码重置链接。
6.若成功重置并登录受害者账号,即确认漏洞存在,可完成账号接管。
危害
- 攻击者可利用较小的构造成本,将任意已知邮箱对应的账号通过邮箱覆盖和密码重置链路完全接管,实现垂直与水平越权。
- 账号被接管后,攻击者可读取隐私数据、操作业务功能、篡改信息,造成数据泄露和业务破坏。
- 由于该漏洞从修改邮箱入口触发,安全设备往往难以将其与正常操作区分,攻击隐蔽且难以追溯。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论