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请求格式如下:
?type=email&input=密码重置链接接收邮箱&userId=9位数字用户ID

7)直接构造如下请求url请求;
?type=email&input=xxxxx@qq.com&userId=XX@sina.com的用户ID

8)真不敢想象,这样就直接获取到了该用户的密码重置链接;

我是如何重置好大夫任意用户密码的

PS:用户ID虽然不连续,但是为9位数字且貌似前3位固定不变,我们通过遍历即可获取到所有有效用户ID,这个危害你们自己评估吧!最后,求个新年礼物!!!