一、常见找回密码的方式
很多网站提供忘记密码功能,往往会存在一些典型的安全问题,核心问题是忘记密码的流程跳过了身份验证。如果不考虑通过客服找回密码的话,通常网站设计有三种方式来认证用户:1、用户设定的安全问题。2、用户注册时留下的安全邮箱。3、给预留手机号发送验证码短信。
二、存在的问题分析及如何修复
1、密码问题是否明文显示在html中(过分鄙视用户智商,以为用户都不抓包都不分析表单参数,直接显示密码问题)
如登陆页中的找回密码功能,查看源代码里不但有密码提示问题,Hide表单里竟然泄露问题答案,可获得任意用户修改密码问题答案,从而修改任意用户邮箱密码。
解决修复:密码应该存在于数据库中不管以任何加密方式,或者至少应该加密。
2、有“重新发送找回密码邮件”功能,不幸地在这个GET请求的URL里,目标email参数是明文的;从而可以将任意用户的密码重置邮件发给指定邮箱。
进入验证身份信息,马上登录邮箱查看密码重置链接是否存在缺陷,这次在“充分发送”时进行截包,发现传递email参数,尝试进行篡改,将email改成自己的邮箱地址;发送成功,登录邮箱,发现收到了重置密码邮件
3、使用手机安全绑定重置密码,短信验证码直接隐藏在页面里,做POST拦截,拦截短信效验码。有些网站直接显示在F12的网页里
4、重置密码页面有登录名、手机号、密码,点击重置密码,同时抓包