(1)如果应用程序允许自我注册,尝试用不同的密码两次注册同一个用户名。
(2)如果应用程序阻止第二次注册企图,也可以利用这种行为枚举现有的用户名,虽然在主登录页面或其他地方不可能这样做。用一组常见的用户名进行多次注册尝试,设法确定被应用程序阻止的已注册用户名。
(3)如果可成功注册完全相同的用户名,尝试用相同的密码注册两个相同的用户名,以此确定应用程序的行为。
(a)如果以上做法得到错误消息,也可以利用这种行为实施一次蛮力攻击,虽然在主登录页面不可能实施这种攻击。针对一个枚举或猜测出的用户名发动攻击,尝试用一组常用密码多次注册这个用户名。如果应用程序拒绝某个特殊的密码,就可以发现目标账户的现有密码。
(b)如果没有得到错误消息,使用指定的证书登录,看看出现什么结果。可能需要注册几个用户,修改每个账户保存的不同数据,以确定这种行为是否可用于未授权访问其他用户的账户。
一些应用程序根据某种可以预测的顺序(如cust5331、cust5332)自动生成账户用户名。如果应用程序以这种方式运转,弄清了用户名顺序的攻击者就可以很快获得全部有效用户名,以此作为后续攻击的基础。与依赖不断提交由词汇驱动请求的枚举方法不同,这种确定用户名的方法不需实施入侵,也很少给应用程序造成干扰。