缺陷逻辑,手机验证码找回密码,验证码过于简单6位数字。

经过大量的测试发现,验证码第一次都是6位数字,如果验证码发送过于频繁,会出现5位数字和字母a组合,不明白加个a有何用意(蛮奇怪的),不过顶多就是将10个字符的排列组合变成了11个而已,而且还是点击发送验证码太频繁的时候才会出现,第一次点击发送验证码根本不会出现(注册了好几个小号专门去测试的结果)。

确认提交手机验证码时候无验证,导致可以爆破。

下图为收到的验证码的测试证明(一次最多只能截图到3条短信,囧)

麦包包任意用户密码重置

选了两个小号去重置了一下密码,均成功重置。过程中发现有的时候返回的错误数据的编号是不一样的(不清楚啥情况),不过还是能很容易的区分出正确的验证码的编号。

1 成功爆破了两个小号。

麦包包任意用户密码重置

麦包包任意用户密码重置

麦包包任意用户密码重置

2 登录证明。


麦包包任意用户密码重置

修复方案:

1 提交手机验证码的时候,加个验证码输入框。

2 把验证码变成26个字母(最好再区分下大小写)和10个数字和排列组合。