绕过 CSRF 保护和密码确认接管受害者帐户:D

CSRF是一种攻击者制作请求并将其发送给受害者,服务器接受请求,就像受害者请求并处理该请求一样。为了缓解这种情况,正在部署多种保护机制,我们将要处理的是Anti-CSRF令牌。

如何绕过CSRF保护来执行成功的CSRF攻击,并且在客户端验证绕过的帮助下,通过更改密码来执行完全帐户接管。在开始攻击方案之前,了解有关Anti-CSRF令牌和可能的绕过的更多信息。

Anti-CSRF令牌是一种允许服务器唯一地区分谁真正请求执行要执行的资源/操作的方法,从而避免了CSRF攻击。但是,由于应用程序中的实现较弱,有几种方法可以绕过Anti-CSRF令牌,例如:

  • 删除Anti-CSRF令牌
  • 通过更改几位来欺骗Anti-CSRF令牌
  • 使用相同的Anti-CSRF令牌
  • 弱密码术以生成Anti-CSRF令牌
  • 可猜测的Anti-CSRF令牌
  • 通过其他攻击(例如XSS)窃取令牌。
  • 将POST请求转换为GET请求以绕过CSRF令牌检查。*(这是我们将在本文中看到的内容)*
    我们把目标命名为target.com。应用程序中editprofile端点有这样的请求:

    我们能够成功绕过它。CSRF可以被利用。
    但它的严重性较低,除了改变一些配置信息,因为仍然不能做太多。
    在寻找了更多信息后,我检查了密码重置功能,但它再次要求在能够更改密码之前输入当前密码。所以原来的密码更改请求是这样的:

删除了current_password字段即可成功重置密码。

现在我们有两件事:

  1. 绕过和执行绕过的方式
  2. 更改密码时绕过当前密码的方法
    现在,我们可以简单地链接问题,使用CSRF更改受害者用户的密码,伪造的请求将如下所示:

    只需使用Burp Suite生成CSRF PoC,或者您可以使用自己的方式将其发送给受害者。一旦受害者导航到攻击者的钓鱼链接,他的密码将被更改。

最初的中度严重程度现在已经很高了。所以永远不要忽略低级漏洞,因为它们可以通过一些手段扩大影响。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!