【问题标题】:How to identify Post Data is hacked using anti-forgery token如何使用防伪令牌识别帖子数据被黑客入​​侵
【发布时间】:2020-05-06 17:26:17
【问题描述】:

我知道 ASP.NET MVC 中的防伪令牌是如何工作的。但仍然不清楚一些场景。我在下面提到的一个。

提交包含以下信息的发布请求

  • cookie 令牌(antiforgerytoken)
  • 表单数据(名字和姓氏)
  • 表单输入隐藏令牌(antiforgerytoken)

在到达服务器之前,黑客修改了表单数据(名字和姓氏),使令牌信息保持不变。

在这种情况下,我们如何确保提交的数据安全地到达服务器而不进行任何修改

其实这个问题是面试官问的。我和同事讨论过,我也在谷歌上搜索过。由于我找不到明确的答案,所以我想在这里问。

我不确定这是否是一个有效的问题。如果是,任何帮助将不胜感激

【问题讨论】:

    标签: c# asp.net-mvc security web csrf


    【解决方案1】:

    这里混杂了多种东西。混淆在于不同保护的目的,所以让我试着弄清楚。

    CSRF 和防伪令牌

    基本威胁如下。受害者用户登录到受害者网站victim.com。同时(比如在另一个浏览器选项卡中)他访问了一个恶意网站malicious.com,该网站想要利用victim.com 中的CSRF。为此,malware.com 让用户将所需的参数发布到victim.com 以调用受害者用户显然不想执行的某个功能。这是 CSRF 的基本案例,恶意网站利用现有用户会话,通过受害者用户在victim.com 上执行某些操作。

    如果使用了 antiforgerytoken,则可以防止这种情况,因为恶意网站将无法将正确的令牌发送到victim.com,因此请求将被拒绝。

    请注意,这与合法的请求内容无关。

    请求的完整性

    另一个问题是确保接收到的请求是发送的,即。数据是一样的。这通常是通过使用 HTTPS 来实现的,它提供消息完整性和加密(等等)。因此,如果使用 HTTPS,则无法更改传输中的数据。

    当然,如果攻击者控制客户端或服务器(更准确地说,是 TLS 端点,并不总是服务器),即。 TLS 通道之外的任何内容,攻击者都可以修改数据。但这意味着可以控制客户。例如,如果您在客户端上运行本地代理(Fiddler、Burp、ZAP 代理等),则可以执行此操作 - 然后您可以更改请求中的任何数据,这就是渗透测试人员的工作方式。但是,没有这种控制级别的攻击者将无法做到这一点。

    如果没有 HTTPS,请求(以及响应)完整性和加密是难以解决的问题。解决方案 HTTPS。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 2018-04-22
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-06
      • 1970-01-01
      相关资源
      最近更新 更多