尝试访问

http://mdsec.net/auth/293/

6.2.10 非唯一性用户名

一些支持自我注册的应用程序允许用户指定他们自己的用户名,而且并不强制要求用户使用唯一的用户名。虽然这种应用程序极其少见,但我们还是见到过若干这类应用程序。

由于两方面的原因,这种设计存在一些缺陷。

img002 在注册阶段或随后修改密码的过程中,共享同一个用户名的两个用户可能碰巧选择相同的密码。如果出现这种情况,应用程序要么拒绝第二名用户选择的密码,要么允许两个账户使用相同的证书。如果属于前者,应用程序将会向一名用户泄露另一名用户的证书; 如果属于后者,其中一名用户登录后会访问另一名用户的账户。

img002 即使由于登录失败尝试次数方面的限制,在其他地方不可能实施这种攻击,攻击者仍然可以利用这种行为成功实施蛮力攻击。攻击者可以使用不同的密码,多次用一个特殊的用户名注册,同时监控说明使用该用户名和密码的账户已经存在的不同响应。攻击者不需以目标用户进行任何一次登录尝试,即可获取该用户的密码。

设计存在缺陷的自我注册功能还可能造成用户枚举漏洞。如果应用程序禁止使用相同的用户名,那么攻击者可以注册大量常见的用户名,从而确定遭到拒绝的现有用户名。