【问题标题】:Low cookies randomness in ASP.NET MVC 4 applicationASP.NET MVC 4 应用程序中的低 cookie 随机性
【发布时间】:2015-03-12 17:10:47
【问题描述】:

我使用 C# 和 ASP.NET MCV4 开发了一个应用程序。在 IIS 中,它设置为使用仅使用 Kerberos 提供程序的 Windows 身份验证。

我使用 Burp Suite 对登录页面的不良 cookie 随机性进行测试。 选择图片中的选定文本来测试在 20k 请求期间有多少变量变化。

结果表明估计的熵为 0 - 因此变量根本没有变化。

有哪些选项可以增加标题选定部分的随机性? 增加 cookie 中存储的会话变量随机性的一般方法是什么?

【问题讨论】:

  • 您突出显示的标头不是 cookie,也不是随机的。它是用于 NTLM 身份验证的标头,最初协商此标头以验证您的 Windows 身份。在协商之后,标头将在整个会话中重复使用,以避免对每个请求进行协商步骤。大概这就是为什么它在您的测试期间不会改变。

标签: c# security asp.net-mvc-4 cookies random


【解决方案1】:

作为@MartinLiversage,这根本不是 cookie:它是来自 [MS-N2HT]: Negotiate and Nego2 HTTP Authentication Protocol 的标头,当服务器收到对受保护对象的请求而没有适当的身份验证数据时使用它。

如您所见,在您的情况下,架构是 Authenticate:Negotiate,因此无需担心某些数据会被泄露:

初始的WWW-Authenticate不携带任何auth-data时 标头是“WWW-Authenticate:negotiate”;它确实携带数据 标题是“WWW-Authenticate:Nego2”。

此外,此标头只是 base64 字符串,可以轻松解密:

How do I decode a base64 encoded string?

对于一般的 cookie,尝试添加一些盐并使用已实现的加密提供程序,例如 RSA 提供程序或其他东西。给定形式的问题过于宽泛,无法找到一种解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 2013-10-08
    • 1970-01-01
    • 2013-08-15
    相关资源
    最近更新 更多