1)注册用户一枚,绑定邮箱:xxx@sina.com,来到用户密码重置功能,输入绑定邮箱;
2)点击提交并抓包,发现在校验邮箱有效性之后,在发送密码重置邮件过程中出现了[邮箱帐号]和[用户ID];
3)尝试将邮箱帐号改为[xxx@sina.cn]并提交, 系统 提示发送成功;
4)登陆xxx@sina.cn邮箱查看,果然收到了好大夫系统发送的密码重置邮件;
5)既然在重置过程中能够修改密码重置链接接收邮箱,那么能不能修改用户的ID呢;在上面的测试过程中,我们发现用户ID为一个9位数字且并非连续,于是再注册一枚用户,重复上面的测试在过程中替换用户ID为xxx@sina.com用户的ID,依然测试成功; 6)既然在这个过程中不管替换密码重置链接接送邮箱、亦或是用户ID,都能成功进行密码重置操作,那么能不能不用抓包修改这些参数,直接操作呢?在上面的测试过程中,我们发现密码重置url请求格式如下: http://passport.haodf.com/user/sendpassword?type=email&input=密码重置链接接收邮箱&userId=9位数字用户ID
7)直接构造如下请求url请求; http://passport.haodf.com/user/sendpassword?type=email&input=xxxxx@qq.com&userId=XX@sina.com的用户ID
8)真不敢想象,这样就直接获取到了该用户的密码重置链接;
PS:用户ID虽然不连续,但是为9位数字且貌似前3位固定不变,我们通过遍历即可获取到所有有效用户ID,这个危害你们自己评估吧!最后,求个新年礼物!!!
查看更多关于我是如何重置好大夫任意用户密码的 - 网站安全的详细内容...