如何使用防伪令牌攻击后期数据

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

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

提交以下信息的帖子请求

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

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

在这种情况下,我们如何确保安全提交的数据无需任何修改即可到达服务器

实际上这个问题是由面试官提出的。我与同事讨论过,我也在谷歌搜索过。由于我无法找到清晰度,我想在这里问一下。

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

c# asp.net-mvc web csrf csrf-protection
1个回答
3
投票

这里有很多东西。混乱是围绕着不同保护的目的,所以让我试着直截了当。

CSRF, and antiforgerytoken

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

如果使用例如antiforgerytoken,则会阻止这种情况,因为malicious.com将无法将正确的令牌发送到victim.com,因此请求将被拒绝。

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

Integrity of requests

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

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

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

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