【问题标题】:Asp.Net forms authentication replay attackAsp.Net 表单身份验证重放攻击
【发布时间】:2013-09-03 16:34:12
【问题描述】:

我们遇到了这样一个场景:用户注销并且之前的良好会话 cookie(包括滑动时间窗口)被重放,并且我们的代码作为用户直接跳转到请求的页面。我们不在服务器中维护会话状态。此 Asp.Net 形成身份验证。

我认为唯一的解决方案是向服务器添加列以跟踪用户日志状态。并不难,但需要代码、数据库和部署来完成。

这是处理此问题的最佳方法吗?由于无论如何我们都必须破解代码,我们可以将客户端请求 ip 和其他内容添加到 cookie 中。但是当前的欺骗是重用客户端机器以及会话。

有什么想法吗?

提前致谢

账单

检查不活动的Javascript代码 -> 注销

$j(document).ready(function () {

            /******************************************************************
            Auto-logout after the user's session times out
            ******************************************************************/

            var timeOut = (_TIMEOUT - 5) * 60;
            var setTimeout = function () {
                $j(".session-timeout").stopTime().oneTime(timeOut + "s", function () {
                    $j(this).show();
                    $j(this).oneTime("300s", function () {
                        window.location = $j(this).find("a.logout").attr("href");
                    });
                });
            };
            $j(".session-timeout a.refresh-session").click(function () {
                NextGen.CHS.UtilitiesWebService.RefreshSession(
                    function () {
                        $j(".session-timeout").fadeOut();
                        setTimeout();
                    },
                    function () {
                    }
                );
            });

            setTimeout();
        });

【问题讨论】:

  • 当用户注销时,它只是在当前页面做回发,还是去一个注销页面?通过重放攻击,您知道来自另一台机器的攻击者,或者您说的是同一台机器,能够做到这一点?
  • 有两种方法。客户端超时导致 ajax 调用使会话无效。单击注销按钮时定期回发。
  • 另外,攻击来自同一台机器(可能是 IP/MAC 欺骗)我们让登录的用户注销并将机器留给其他用户。
  • 您可能需要考虑使用 JavaScript 重定向到注销页面,而不是使用 AJAX,通过 window.location='logout.aspx';
  • 我用检查非活动客户端的 javascript 代码编辑了原始问题。

标签: asp.net authentication webforms replay


【解决方案1】:

我最终通过跟踪用户登录/注销状态和活动时间戳来解决此问题。当收到重播会话时,我们仍然解密表单票证并找到有效的“会话”信息。这会识别用户,然后我们检查是否已注销,如果是则重定向到登录页面。

对于用户在未注销的情况下终止浏览器的情况,活动时间戳用于扫描用户表并注销非活动用户的 sql 作业。

韦德森

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 2014-04-01
    相关资源
    最近更新 更多