YS修改用户绑定手机号码功能存在逻辑绕过漏洞,不需要旧手机号码即可绑定新手机号码【高】

YS修改用户绑定手机号码功能存在逻辑绕过漏洞,不需要旧手机号码即可绑定新手机号码【高】

问题描述:

         此问题可作为以上横向越权漏洞问题的延伸,假设横向漏洞已修补,用户登录后的随机session id是作为用户身份的唯一标识,此时,用户虽然无法修改其他人的手机绑定号码,却可以修改自己绑定的手机号码,即不需要旧手机号也能重新绑定新的手机号。

测试步骤:

1、  开启burp拦截代理,并启用http请求拦截功能。

2、  假设测试账户当前绑定的手机号码如下图所示:

3、  在“用户注册”界面使用一个未注册的账户向一个未绑定的手机号码发送验证码,未绑定号码可受用户任意指定,如图:

4、  使用burp拦截请求修改绑定号码的http请求,并在该请求中输入以上未绑定的手机号码和对应的验证码,并假设此时session id字段是标识用户身份的唯一标识,而AS_UserID字段不起作用,如图:

5、  点击发送该请求,服务器响应显示成功,如图:

6、  刷新测试账户信息,可以看到账户绑定的号码已经变更,如图:

问题扩展:

         如果攻击者通过某种方式(比如XSS攻击)获取了用户的cookie,那么就可以使用这种方式修改绑定手机,接着使用“忘记密码”功能修改用户的密码。

解决建议:

1、  在验证旧手机过程中不要传递手机号,直接通过数据库查询,防止被非法篡改。

2、  为避免多阶段的逻辑漏洞,旧手机号短信验证码和新手机号在一个http请求内提交到服务器。

时间: 2024-08-26 13:50:17

YS修改用户绑定手机号码功能存在逻辑绕过漏洞,不需要旧手机号码即可绑定新手机号码【高】的相关文章

为VisualSVN Server增加在线修改用户密码的功能

原文:为VisualSVN Server增加在线修改用户密码的功能 附件下载:点击下载 VisualSVN Server是一个非常不错的SVN Server程序,方便,直观,用户管理也异常方便. 不过,它本身并没有提供在线修改密码的功能.由于在实际使用过程中,一旦SVN的用户比较多,只单单依靠windows的管理控制台去修改密码 显然是不太合适的. 总不能任何人想改个密码还要通过管理员吧?所以,就想为其增加在线修改密码的功能. 说实话,网上已经有了可以在线修改密码的方法.试用过,也的确可以.不过

银行管理系统 实现用户注册 登录 存、取款 交易记录查询和修改用户信息等功能

========= 项    目   介   绍======== 银行账户管理系统 本项目主要实现用户注册 登录 存.取钱和修改用户信息功能. 用户信息的存储和获取通过集合和IO输入输出流实现. 存钱 取钱功能通过修改用户信息中的余额实现 修改用户信息 要先获取用户信息 ,再把修改后的信息保存到List中,同时必须删除原有的用户信息. ========项目功能需求============= 该银行管理系统可以实现 以下主要几个功能 用户注册   注册成功才能进行用户登录 用户登录  登录成功后

微信开发第5章 通过accesstoken获取用户基本信息并修改用户备注

在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同).公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称.头像.性别.所在城市.语言和关注时间. 请注意,如果开发者有在多个公众号,或在公众号.移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求. UnionID机制说明: 开

linux下添加删除修改用户

http://blog.csdn.net/pipisorry/article/details/39533627 一.创建用户: 1.使用命令 useradd useradd 功能说明:建立用户帐号. 语 法:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号] 或 useradd -D [-b][-e &l

[转] ASP.NET MVC 模型绑定的功能和问题

摘要:本文将与你深入探究 ASP.NET MVC 模型绑定子系统的核心部分,展示模型绑定框架的每一层并提供扩展模型绑定逻辑以满足应用程序需求的各种方法. 同时,你还会看到一些经常被忽视的模型绑定技术,并了解如何避免一些最常见的模型绑定错误. ASP.NET MVC 模型绑定通过引入自动填充控制器操作参数的抽象层.处理通常与使用 ASP.NET 请求数据有关的普通属性映射和类型转换代码来简化控制器操作. 虽然模型绑定看起来很简单,但实际上是一个相对较复杂的框架,由许多共同创建和填充控制器操作所需对

YS&ldquo;本地相册&rdquo;功能存在反射型XSS漏洞【中危】

这是在测试YS"本地相册"功能时发现的一个反射型XSS,自己在安全测试过程中也发现过不少XSS漏洞,唯独这个的发现过程有点区别. 在此之前,我在测试另外一个模块的功能接口的时候发现了一个反射型XSS,当我在测试"本地相册"这个功能的时候,当我用burp拦截到HTTP请求时,发现该请求有3个参数,仔细观察,发现这3个参数居然和之前有XSS漏洞的接口的参数是一模一样的,但是有区别的地方:两者接口名称(action)是不一样的,两者参数个数不一样,之前的是4个,"

Linux培训教程 linux下修改用户权限的方法

一般我们日常碰到要修改用户权限的,往往是要么修改一下用户的gorupid,通过上面命令可以改;要么是把普通用户改成具有超级权限的用户,这个一般自己不能直接改,只能是root或有root权限的用户才能帮你改,在/etc/passwd文件里面,找到对应userid那一行,将userid那一列你的id改成0,然后强制保存退出.这时候你的这个用户就有超级用户权限了.改用户的groupid也可以这样改. 如果是改某个文件的属性,就比较简单了,直接用chmod命令就可以了,我一般直接后面接数字,如果要给rw

[添加用户]解决useradd 用户后没有添加用户Home目录的情况,Linux改变文件或目录的访问权限命令,linux修改用户密码,usermod的ysuum安装包。飞

usermod的yum安装包: shadow-utils 将nobody用户添加到nogroup 组: usermod -g nogroup nobody cat /etc/passwd|grep nobody nobody:x:65534:65534:nobody:/var/lib/nobody:/bin/bash 第3个字段是65534:意思就是,UID(用户的ID)是500. 第4个字段是65534:意思就是.GID(用户的组ID)的500. 使用usermod -g nogroup no

Linux usermod(修改用户帐号)

应用举例:1.将 newuser2 添加到组 staff 中# usermod -G staff newuser22.修改 newuser 的用户名为 newuser1 # usermod -l newuser1 newuser3.锁定账号 newuser1 # usermod -L newuser14.解除对 newuser1 的锁定# usermod -U newuser1功能说明:修改用户帐号. 语 法:usermod [-LU][-c <备注>][-d <登入目录>][-e