我有一个使用表单成员身份验证的 ASP.NET Web 应用程序。我们最近进行了渗透测试,发现的一个问题是窃取用户帐户的能力。如果在注销之前从用户复制了 .ASPXAUTH cookie 值,则用户可以以其他用户身份登录,编辑其 cookie 以匹配复制的值并获取其所有特权。
注销时我尝试过:
删除cookie。我可以成功地做到这一点,但它不会使 FormsAuthenticationTicket 失效。
Using FormsAuthentication.SignOut() http://support.microsoft.com/kb/900111但发现它并不能阻止攻击
我个人不认为这是一个问题,我相信它可能被盗的唯一方法是如果用户设法获得对经过身份验证的用户的访问,这表明我需要解决这个问题以安抚渗透测试人员。
任何想法将不胜感激!
谢谢
注销时我尝试过:删除cookie。
我可以成功地做到这一点,但它不会使 FormsAuthenticationTicket 失效。
实际上,当您删除 cookie 时,您就将其从您的用户中删除 - 您无法停用它,因此如果有人得到它,他仍然可以使用它。
解决方案可以是:
- 将身份验证 cookie 的状态也保存在服务器上。
- 将登录用户的状态与其会话连接起来。
还可以在这里阅读更多相关内容:黑客是否可以窃取用户的 cookie 并使用该用户名登录网站? https://stackoverflow.com/questions/2498599/can-some-hacker-steal-the-cookie-from-a-user-and-login-with-that-name-on-a-web-s
and 表单身份验证 - Cookie 重放攻击 - 保护 https://stackoverflow.com/questions/16062808/form-authentication-cookie-replay-attack-protection
and http://support.microsoft.com/default.aspx?scid=kb;en-us;900111 http://support.microsoft.com/default.aspx?scid=kb;en-us;900111
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)