尝试访问

http://mdsec.net/auth/88/

http://mdsec.net/auth/90/

http://mdsec.net/auth/97/

6.2.5 密码修改功能

令人奇怪的是,许多Web应用程序并不允许用户修改其密码。但是,出于两个方面的原因,精心设计的验证机制需要这种功能。

img002 定期强制修改密码可降低某一密码成为密码猜测攻击目标的可能性,同时降低攻击者不需要检测即可使用被攻破密码的可能性,由此降低密码被攻击的概率。

img002 怀疑自己的密码已被攻破的用户需要立即修改密码,以降低未授权使用概率。虽然密码修改功能是一个高效验证机制的必要组成部分,但从设计来看,它往往易于遭受攻击。在主要登录功能中特意避免的漏洞通常在密码修改功能中重复出现。许多Web应用程序的密码修改功能不需要验证即可访问,并为攻击者提供某些信息或允许攻击者执行某些操作。

img002 提供详细的错误消息,说明被请求的用户名是否有效。

img002 允许攻击者无限制猜测“现有密码”字段。

img002 在验证现有密码后,仅检查“新密码”与“确认新密码”字段的值是否相同,允许攻击者不需入侵即可成功查明现有密码。

典型的密码修改功能通常包含一个相对较大的逻辑判定树。应用程序需要确认用户、验证提供的现有密码、集成任何账户锁定防御、对提交的新密码进行相互比较并根据密码强度规则进行比较,以及以适当的方式向用户返回任何错误条件。为此,密码修改功能通常包含难以察觉的可用于破坏整个机制的逻辑缺陷。