ASP反请求伪造,为什么黑客不会先获取?

时间:2014-09-24 09:26:37

标签: asp.net asp.net-mvc csrf owasp

我一直在我的MVC3 Web应用程序中实现ASP ARF令牌,并阅读CSRF漏洞利用的工作方式以及ARF令牌如何防御它。现在我想知道'黑客'是否无法通过额外的步骤绕过ARF检查。正常的CSRF场景如下:

  1. 创建一个发布到目标网站BankingSite
  2. 的网站(我们称之为HackerSite)
  3. 使用社交工程(或广告中的XSS等)以便用户使用 访问网站HackerSite
  4. HackerSite上的脚本将使用用户发布到BankingSite cookie /凭证因此以他/她的名字发布
  5. 由于我们的ARF令牌,BankingSite知道忽略来自网站HackerSite的POST。因为它缺少正确的AFR令牌。谁能告诉我为什么黑客不能通过首先在BankingSite上执行GET请求来获取令牌?像这样:

    1. 创建一个发布到目标网站BankingSite
    2. 的网站(我们称之为HackerSite)
    3. 使用社交工程(或广告中的XSS等)以便用户使用 访问网站HackerSite
    4. HackerSite上的脚本将执行GET请求并获取ARF令牌 从响应中的HTML,此请求还将在用户的cookie中设置ARF令牌
    5. HackerSite上的第二个脚本将发布到BankingSite 使用 因此,抓取的ARF令牌 +用户cookie /凭证 以他/她的名字发布
    6. 有谁知道我在这里缺少什么,以及ARF如何抵御这种攻击?

1 个答案:

答案 0 :(得分:1)

攻击者并不知道受害者的cookie。令牌生成基于它。如果您的网站有其他XSS漏洞,此方法无法帮助您解决CSRF漏洞问题。

如果发送AJAX referer标题将是HackerSite,而不是BankSite。因此,您无法访问网站的封闭部分(无法访问CSRF令牌)。这只是Http-Only,因此您无法通过javascript获取它。如果您想将受理请求发送到受害者站点,您的计划将失败。