WEB安全测试,密码重置功能的逻辑漏洞排查。先验证重置链接生成规则。查看链接是否与用户账号唯一绑定,是不是包含随机且足够长度的字符,避免用固定格式或简单参数拼接,防止他人通过规律猜测链接。
测试重置链接有效期。生成链接后,超过设定时间(如 24 小时),尝试访问链接,检查是不是失效。如果未失效,可能被他人截取后长期使用,存在安全风险。
检查验证码发送。发送验证码时,查看是否限制发送频率,比如 1 分钟内最多发送 1 次,避免恶意用户频繁发送短信骚扰用户,或通过大量发送尝试破解。同时验证验证码是否具有唯一性,是否与用户账号关联,防止用其他用户的验证码完成自己账号的密码重置。
验证身份核验。密码重置前,需要确认申请人身份。测试时,尝试跳过身份验证步骤,直接访问重置密码页面。如果能跳过这步,意味着任何人都可随意重置他人密码,系统可能存在严重漏洞。还要检查身份核验信息是否准确,如果回答安全问题时,是不是区分大小写、是否验证完整答案,避免部分匹配就能通过验证。
测试密码重置后的通知。密码重置成功后,是不是立即向原绑定手机号或邮箱发送通知,告知用户密码已被修改。如果没有发送通知,用户账号被他人篡改密码也无法及时察觉,不利于账号安全。
查看重置过程中的参数传递。通过抓包工具查看密码重置请求中的参数,是不是包含敏感信息(如明文密码),参数是否被加密处理。若参数未加密,可能在传输过程中被截取,导致密码泄露。同时检查参数是否可篡改,比如修改请求中的用户ID,尝试重置其他用户账号密码。
验证多次错误操作后的限制。在密码重置过程中,若多次输入错误验证码或安全答案,是否触发账号锁定机制,比如锁定 1 小时后才能再次尝试。若无限制,恶意用户可通过暴力破解方式获取正确信息,完成密码重置。