网站地图    收藏   

主页 > 后端 > 网站安全 >

联想商城账户设计缺陷致在已知注册邮箱的情况

来源:自学PHP网    时间:2015-04-17 12:00 作者: 阅读:

[导读] 在知道用户注册email的情况下,由于开发时的逻辑问题,先通过XX,然后就可以通过穷举来知道用户密码,接着就可以登录到这个用户的帐号。然后,个人信息什么的,就会泄漏了。没有...

在知道用户注册email的情况下,由于开发时的逻辑问题,先通过XX,然后就可以通过穷举来知道用户密码,接着就可以登录到这个用户的帐号。
然后,个人信息什么的,就会泄漏了。
没有去看支付过程是如何,假如有预存款余额的话,应该是可以盗钱滴.....(数字事件,你懂的....)

在联想官方网上商城中 http://shop.lenovo.com.cn/

首先说一说注册,注册完后,用户的帐号和密码居然通通都以明文的方式发送到用户的邮箱中,假如用户的邮箱出了问题,拿下这个帐号就是无压力的了。

 

 

然后就进入正题了,忘记密码的过程经过分析基本如下:
用户:使用电子邮件找回密码--系统:密码重置为6位的全数字密码--系统:重置后的密码发送到用户的邮箱中--用户:使用重置后的密码登录--用户:在用户中心后台修改密码(可以省略这步)

过程基本上就是这样子的,这个找回密码的过程可谓是奇葩,居然仅仅提供一个email地址就可以不经确认就重置用户的密码,而且还是6位的数字密码。

 我用自己的帐号来进行实验

首先找回密码,输入自己的email地址。

 

 

然后,我就收到了一封邮件,明文写着我的6位数字新密码。。。。

 

 

假设我们不知道这个密码是什么。。。

我们来到登录的地方,一眼看上去有个验证码,理论上应该是可以防止被穷举的,但非常遗憾,这个验证码形同虚设。

我们输入邮箱、假的密码和正确的验证码,使用burp抓包。

 

 

没仔细研究验证码的比对方式,我猜应该是和/openapi/pam_callback/login/module/pam_passport_basic/type/member/appid/b2c/redirect/L3Bhc3Nwb3J0LXBvc3RfbG9naW4tTDIxbGJXSmxXXTVvZEcxXX5odG1s 后面的字符串进行验证的。

然后就是大家都懂的,生成字典,6位数字,从100000到999999。

坐等破解,破解时间看你的网络状态。。。。

很快,我们就可以看到一个特殊的请求。

 

由此可见,258729就是重置后的密码(和上图的密码不一样是因为上面那个图是补的..)

我们使用这个密码登录,成功登录

 
 


修复方案:

注册后密码不要明文发给用户

修改找回密码的流程

加强验证码的验证方式

最好的话加上一个帐号一天超过N次就锁定帐号

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论