滥用没有 CSRF 令牌的登录表单?

问题描述 投票:0回答:1

我无法理解 CSRF 攻击如何与不使用 CSRF 令牌的登录表单一起工作。

这就是向我描述的过程:

  1. 受害者用户登录到一个没有 CSRF 令牌的登录页面的网站。

  2. 攻击者创建一个包含隐藏登录表单的网页,该表单以受害者网站的登录页面为目标。

  3. 攻击者诱使受害者访问包含隐藏登录表单的网页,可能是通过向受害者发送网络钓鱼电子邮件或将该页面注入合法网站。

  4. 当受害者访问网页时,隐藏的登录表单会在受害者不知情或未同意的情况下使用受害者的会话 cookie 自动提交到受害者的网站。

  5. 受害者的浏览器向受害者的网站发送登录请求,网站将受害者登录,让攻击者获得对受害者账户的未授权访问。

但我不明白第 4 步和第 5 步是如何发生的。

关于第 4 步:攻击者没有登录凭据,因此他们无法提交包含登录详细信息的表单。所以这排除了?唯一的其他选择是用户设置了身份验证 cookie,表单发送它,从而使用户登录。但这并没有让攻击者无所适从?

为了做任何有用的事情,攻击者需要在登录后执行额外的状态更改请求。这就是 CSRF 令牌的用武之地,在我看来:登录后,使用 CSRF 令牌来防止通过 CSRF 发出状态更改请求.

那么登录表单的 CSRF 有什么意义呢?如果 CSRF 令牌用于应用程序的其余部分? 即如果站点的其余部分使用 CSRF 令牌,但登录表单不使用,那么对登录表单进行 CSRF 攻击会造成什么危害?

最后一个问题:如何生成登录表单的 CSRF 令牌?它们不能被伪造吗? 像这样:攻击者访问登录表单,获取 CSRF 令牌,然后发送该令牌以及他们让用户执行的伪造请求。 受害者 web 应用程序如何知道 CSRF 令牌不是由用户获得,而是由攻击者获得,并且攻击者让用户发送它?

据我了解,CSRF 令牌是生成并与用户或会话相关联的。并且仅当传回的 CSRF 令牌与为该登录用户生成的令牌匹配时才允许执行操作。因此攻击者无法获得有效的令牌来进行 CSRF 攻击。

我很困惑!

authentication security csrf csrf-token
1个回答
0
投票

我认为登录表单的 CSRF 保护没有用。它们是相关的after用户登录,在有表格代表用户的情况下。

密码也是秘密,就像CSRF令牌一样。您最多可以登录一个您已经拥有用户名和密码的不同用户。

就个人而言,在用户登录之前我什至不会生成会话 cookie,因此没有会话的概念。

不过,我不认为将 CSRF 令牌添加到任何表单有什么问题,因为这意味着您真的不必考虑它是否有用。

© www.soinside.com 2019 - 2024. All rights reserved.