2

在安全漏洞测试期间,我们的客户端在用户成功登录系统后请求应用程序更改会话 ID,特别是 ASP.NET_SessionID cookie 值。这可能会解决会话固定问题,当会话 ID 发生更改时会引发 session_end 事件并导致重新启动会话(系统),该会话将再次重定向到登录页面。有什么方法可以更改会话 ID 而不会导致这一切?

请建议任何解决方法。

4

1 回答 1

1

好问题。当人们谈论更改会话 ID 以防止会话固定时,他们通常会想到 Java 框架中发生的漏洞,其中知道 sessionId 足以接管会话。

但是,ASP.NET 是另一种野兽。ASP.NET 需要两个东西来接管会话:sessionId 和 ASPXAUTH cookie。如果你用谷歌搜索,你会发现仍然存在会话固定可能性的不合理说法,但我不相信,因为似乎没有人展示如何利用它们。我发现最接近它可以被利用的证据是这个博客,这至少可以说是有见地的。该博客确实指出了 ASP.NET 中的一个糟糕的实现——该框架没有检查 sessionId 和 ASPXAUTH 是否绑定到同一个用户(除非开发人员明确添加了这个检查)。但它可以被利用吗?我可以想到如果开发人员做错了比会话固定更糟糕的漏洞利用的情况,它可能是可利用的,但除此之外,我对此表示怀疑。

绝对是一个需要更多研究的话题。我意识到我的回答来不及满足您的需求,但我想我还是会跟进。底线:登录后更改 sessionId 似乎并没有提供任何额外的保护。如果你的渗透测试者不这么认为,我会邀请他们向我解释。

于 2015-07-10T05:25:48.553 回答