0x00 背景介绍
以前看了一片密码找回漏洞的总结,现在又看到了一些新的情况,写出来补充一下。
0x01 回顾
上篇文章中已有的7点如下:
1. 密码找回凭证太弱,容易被爆破
2. 密码找回凭证可以从客户端、URL中直接获取
3. 密码找回凭证可以在网页源代码中直接获取
4. 密码找回的邮箱链接易猜解,如时间的md5
5. 密码找回凭证存并非只是与单个用户并绑定的问题。
6. 密码找回的手机或邮箱从页面获取,可以通过firebug修改
7. 最后提交新密码时修改用户ID为其他ID
0x02 补充
一. 跳过验证步骤、找回方式,直接到设置新密码页面
WooYun: OPPO手机同步密码随意修改,短信通讯录随意查看
二. 找回密码时没有在服务器上验证用户名与邮箱是否匹配便发送了验证码
WooYun: 魅族的账号系统内存在漏洞可导致任意账户的密码重置
http://www.zhaojin97.cn/read-196.html
三. 重置密码时返回的token没有与账号以及验证码绑定
还是上面的魅族密码重置问题
四. 服务器只验证了对应的验证信息是否存在,没有验证是否与账号匹配
WooYun: 第二次重置OPPO手机官网任意账户密码(秒改)
五. 在本地验证服务器的返回信息,确定是否执行重置密码,但是其返回信息是可控的内容,或者可以得到的内容
六. 发送短信等验证信息的动作在本地进行,可以通过修改返回包进行控制
七. 提交新密码时的,只验证了部分可控的信息是否匹配
八. 在找回密码处存在注入漏洞
WooYun: 用友人力资源管理软件(e-HR)另一处SQL注入漏洞(通杀所有版本)
0x03 修复方案
找回密码凭证够复杂并且不可猜测,任何动作放在服务器端进行,传输的验证参数做好加密,同时对参数做好过滤
我的QQ密码忘了。
很强大。。。
Do intercept => Response to this request 好东西。。。
可以看到时间跨度比较大,几个都是补了被挖出来,再补,又被挖出来,有代表性而已
有些确实是放在客户端通过response来判断,都是问题
这个问题现在很多……
还遇到过提交后返回response,根据response的true false来判断是否进入下一步重置的
这么多oppo。。。
嗯,讲得好。