PasswordResetPoisoning是一种攻击者操纵易受攻击的网站以生成指向其控制下的域的密码重置链接的技术。此行为可用于窃取重置任意用户密码所需的秘密令牌,并最终危及他们的帐户。1、密码重置原则几乎所有需要登录的网站都有一个功能,可以让用户在忘记密码的情况下重新设置密码。有几种方法可以做到这一点,安全性和实用性各不相同。最常见的方法是这样的:用户输入用户名或电子邮件地址并提交密码重置请求。该网站检查用户是否存在,然后生成一个临时的、唯一的、高熵(意味着不容易预测)令牌,它与后端的用户帐户相关联。该网站向用户发送一封电子邮件,其中包含重置密码的链接。用户唯一的重置令牌作为查询参数包含在相应的URL中:https://normal-website.com/reset?token=0a1b2c3d4e5f6g7h8i9j当用户访问此URL时,网站检查提供的令牌是否有效,并使用以确定正在重置哪个帐户。如果一切顺利,用户可以选择输入新密码。最后,销毁令牌。与其他一些方法相比,该过程足够简单且相对安全。然而,它的安全性依赖于只有目标用户才能访问他们的电子邮件、访问他的唯一令牌的原则。密码重置中毒是一种窃取令牌以更改其他用户密码的方法。2.如何构建密码重置中毒攻击一旦确定可以将任意主机名传递给目标应用程序,就可以开始寻找利用它的方法。在本节中,我们将提供一些您可以构建的常见HTTP主机标头攻击示例。2.1密码重置中毒如果发送给用户的URL是根据可控输入(如Host头)动态生成的,密码重置中毒攻击可以构造如下:攻击者根据需要获取受害者的URL邮箱地址或用户名,以及代表他们提交密码重置请求。提交表单时,拦截生成的HTTP请求并修改Host标头,使其指向攻击者控制的域。对于这个例子,我们将使用evil-user.net。受害者会直接从该网站收到一封真正的密码重置电子邮件。包括一个通用链接以重置他们的密码,更重要的是,包括一个与其帐户关联的有效密码重置令牌。但是,URL中的域名指向攻击者的服务器:https://evil-user.net/reset?token=0a1b2c3d4e5f6g7h8i9j如果受害者单击此链接(或以其他方式获取,例如通过防病毒扫描程序),密码重置令牌将发送到攻击者的服务器。攻击者现在可以访问易受攻击网站的真实URL,并用窃取的令牌替换相应的参数。然后他们可以将用户的密码重置为他们喜欢的任何密码并登录到他们的帐户。在真正的攻击中,攻击者可能会尝试增加受害者点击链接的可能性,例如,通过发送虚假的通知消息。即使无法控制密码重置链接,有时也可以使用主机标头将HTML注入敏感电子邮件。请注意,电子邮件客户端通常不执行JavaScript,但其他HTML注入技术(例如悬挂标签攻击)可能仍然适用。本文由博客多发平台OpenWrite发布!
