声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
常见的密码找回方式有:
l 邮箱找回
l 手机验证码找回
l 密码保护问题找回等
这些常见的找回方式会存在哪些安全问题呢?今天主要来说说密码找回功能有哪些测试点及对应的测试方法。
密码找回功能安全测试点,主要包含以下9个点:
1. 用户名枚举
2. 绕过密码找回步骤
3. 邮箱验证
4. Cookie混淆
5. 覆盖注册
6. 图形验证码
7. 短信验证码
8. 输入输出
9. 密保问题
No.1
用户名枚举
渗透思路:根据验证用户名时返回的信息判断网站是否存在对应的用户,进行用户名枚举,获取对应网站的用户名字典。
测试方法:
(1) 输入已知存在的用户名,获取其返回的内容;
(2) 输入不存在的用户名,获取其返回的内容;
(3) 对比(1)和(2)两次返回内容的差异性,比如(1)返回“验证成功”,(2)返回“用户不存在”;
(4) 根据差异,直接对用户名进行遍历,返回与(1)内容相同的,则说明存在。
举例:
(1) 进入找回密码页面,输入账户名和验证码;
(2) 当用户存在时,响应提示“查询成功”;
(3) 当用户不存在时,响应提示“未找到对应用户”;
(4) 根据(2)和(3)响应内容的不同,对用户名的参数值进行遍历,根据响应内容不同,返回长度不同,判断是否存在,从而获取对应的用户名字典。
子弹观点
针对此类问题,一般修复建议:
(1) 增加防自动化攻击的措施,如增加图形验证码(需一次有效)或手机验证码(需一次有效)等。