安全专家对此问题的评价:
这很糟糕
我花了半分钟的时间思考在登录SE时在哪里用JS执行POST请求,并拒绝任何受攻击的用户对其帐户的访问
我决定通过
my logins
链接更改密码,并出现以下对话框:注意缺少当前密码的确认。
我喜欢我可以永久登录到Stack Exchange网站,但是让我担心的是,有人可以在不知道我当前密码的情况下更改我的密码。帐户已更改。
(如果您没有这样做,则应该担心。)
链接到https://openid.stackex change.com/user,因此大概需要我登录(我没有登录)才能执行此操作。
P.S.这与登录名有关,但不是重复的登录名,无需重新验证即可添加/删除,这使得临时XSS可以升级为永久帐户劫持,这两个错误均来自此处缺乏纵深防御。
评论
(在某些情况下,正确注销SE实际上非常困难,因此这不是您的错。)我很乐意看到代码中的注释,该注释发出“如果不这样做,您应该担心。” ...
这看起来像一个安全漏洞。 (请参阅owasp.org/index.php/…)
如果您认为@Deer确实是安全问题,请按照此处描述的步骤进行操作,这可能会引起团队更快的响应。 (谁知道,您可能会在名人堂中看到您的名字;))
@ShadowWizard-不,它本身不是一个创伤,我也不是第一个发现它的人。有点缺乏纵深防御。
物有所值:我认为,您始终一直登录这一事实绝对丝毫不减损您的道德高地。始终登录没有任何问题-这就是网站设计的工作方式!
如果您对此感到担心,则非常类似的情况是无需重新进行身份验证即可添加和删除登录名的功能。我认为,简单的XSS漏洞可能迅速添加攻击控制的登录名(使用自定义OpenID提供程序),删除现有的登录名,然后将用户永久注销其帐户。如果有时间,我一直在考虑实施概念验证。
@JeremyBanks-我认为这应该作为单独的问题发布。
@DeerHunter完成
奇怪的是,它已被标记为“已解决”,而没有回答说已解决。
@AndrewGrimm但是,现在有一个用于保存旧密码的框,并且肯定可以解决此问题。