同步器令牌模式:它如何阻止XSS和CSRF的组合?

时间:2013-09-23 08:40:34

标签: security xss csrf owasp

我一直在研究OWASP建议,以防止CSRF攻击(https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet)。

现在,我不明白这是如何防止XSS和CSRF攻击相结合的攻击。我们假设我们有以下攻击情形:


  1. 攻击者能够执行存储的XSS攻击,以便每次用户访问该页面时都会执行攻击者在网站上插入的脚本。

  2. 此脚本将完全重新设计DOM,例如,而不是用户需要提供一些不相关信息的原始表单,攻击者的脚本会重新设计它,以便将此表单重新设计为表单添加具有管理员权限的用户的位置。请注意,用户不会看到此内容,因为字段的标签将保持不变。只有POST会有所不同。

  3. 攻击者知道该网站使用反CSRF令牌。查看OWASP建议:'(..)应用程序应包含一个隐藏的输入参数,其常用名称为" CSRFToken"',攻击者知道大多数网站都会隐藏在页面的某个位置使用此ID的字段。

  4. 攻击者确保此字段的值也在假POST中提交。即使攻击者不知道该隐藏字段的值,它也可以在POST中指定该值应与请求一起发送。这是可能的,因为用户的DOM已被修改,请求将来自用户的浏览器,用户的cookie也将随请求一起发送。

  5. 用户提交表单,并创建假用户。


  6. 在我看来,仅使用CSRF令牌无法阻止这种情况。或者是XSS攻击被中和的同步模式的隐含假设?

1 个答案:

答案 0 :(得分:3)

  

或者是XSS攻击被中和的同步模式的隐含假设?

是。如果您的网站以这种方式受到攻击,那么它就是XSS攻击而不是CSRF。 CSRF仅仅意味着请求是跨站点",而在您的示例中,请求位于同一站点上 - 它只是脚本“#34;跨站点"。