首页 > 代码库 > YS修改用户绑定手机号码功能存在逻辑绕过漏洞,不需要旧手机号码即可绑定新手机号码【高】
YS修改用户绑定手机号码功能存在逻辑绕过漏洞,不需要旧手机号码即可绑定新手机号码【高】
YS修改用户绑定手机号码功能存在逻辑绕过漏洞,不需要旧手机号码即可绑定新手机号码【高】
问题描述:
此问题可作为以上横向越权漏洞问题的延伸,假设横向漏洞已修补,用户登录后的随机session id是作为用户身份的唯一标识,此时,用户虽然无法修改其他人的手机绑定号码,却可以修改自己绑定的手机号码,即不需要旧手机号也能重新绑定新的手机号。
测试步骤:
1、 开启burp拦截代理,并启用http请求拦截功能。
2、 假设测试账户当前绑定的手机号码如下图所示:
3、 在“用户注册”界面使用一个未注册的账户向一个未绑定的手机号码发送验证码,未绑定号码可受用户任意指定,如图:
4、 使用burp拦截请求修改绑定号码的http请求,并在该请求中输入以上未绑定的手机号码和对应的验证码,并假设此时session id字段是标识用户身份的唯一标识,而AS_UserID字段不起作用,如图:
5、 点击发送该请求,服务器响应显示成功,如图:
6、 刷新测试账户信息,可以看到账户绑定的号码已经变更,如图:
问题扩展:
如果攻击者通过某种方式(比如XSS攻击)获取了用户的cookie,那么就可以使用这种方式修改绑定手机,接着使用“忘记密码”功能修改用户的密码。
解决建议:
1、 在验证旧手机过程中不要传递手机号,直接通过数据库查询,防止被非法篡改。
2、 为避免多阶段的逻辑漏洞,旧手机号短信验证码和新手机号在一个http请求内提交到服务器。
YS修改用户绑定手机号码功能存在逻辑绕过漏洞,不需要旧手机号码即可绑定新手机号码【高】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。