渗透测试步骤

(1)确定应用程序中的所有忘记密码功能。即使公布的内容中没有明确的忘记密码功能链接,应用程序仍然可能实施这种功能(请参阅第4章了解相关内容)。

(2)使用受控制的账户执行一次完整的密码恢复过程,了解忘记密码功能的工作机制。

(3)如果恢复机制使用质询,确定用户是否能够设定或选择他们自己的质询与响应。如果用户可设定或选择自己的质询与响应,使用一组已枚举的或常见的用户名获取一些质询,并对其进行分析,找出任何非常容易猜测出响应的质询。

(4)如果恢复机制使用密码“暗示”,采取和上个步骤相同的操作获得一组密码暗示,并对任何可轻易猜测出答案的暗示发动攻击。

(5)设法确定忘记密码机制中任何可用于用户名枚举或蛮力攻击的行为(详情请参阅上文)。

(6)如果应用程序在忘记密码请求的响应中生成一封包含恢复URL的电子邮件,获取大量这类URL,并试图确定任何可帮助预测向其他用户发布URL的模式。请使用和分析会话令牌以实现预测相同的技巧(请参阅第7章了解相关内容)。