网站返回明文密码

信息安全 密码 Web应用程序 账户安全
2021-08-20 09:32:55

我最近登录了一个网站。当我点击“更新个人资料”页面时,您会看到所有用户字段的文本框列表,例如姓名、电子邮件、电话号码等。

还有一个密码和确认密码框(如果您想更新这些值),但是,当您进入此页面时,这些框已经被填充,这让我想,他们为什么要放置占位符?

当进入检查元素时,它们实际上具有您的密码值,转换为大写,如下所示:

<input type="password" name="txtPassword2" size="45" value="MYPASSAPPEARSHERE">

我最近还注意到登录时您的密码或用户名的大小写无关紧要 - 例如,我可以将其全部大写,全部小写,或两者混合,它仍然会接受密码。

这是一个安全漏洞吗?这是否表明他们将密码存储为纯文本?

这不是(如何处理存储纯文本密码的网站)的副本,因为我在这里要求澄清这是否表明该站点正在存储纯文本密码,而不是如何处理它。


公司回应:公司经过努力,承认他们实际上是在以明​​文形式存储密码。

3个回答

很明显,如果他们可以显示您的密码,那么他们就会以某种方式存储您的密码。当您登录时,他们可能会在客户端缓存您的密码(出于不合理的原因,例如会话管理),但他们的密码数据库更有可能是明文。无论哪种方式,它都已存储并且不应该存储。

看起来他们正在upper()对密码运行一个函数,该函数从潜在的字符集中删除了 26 个字符,否则这些字符会增加一些熵。

这对他们来说是非常非常糟糕的安全性,2 年来一直没有立足之地。

明文密码是一个巨大的安全问题。

  1. 首先,他们甚至不应该知道。密码应存储散列和加盐。任何不这样做的人都是[编辑审查]。
  2. 其次,在非绝对必要时通过网络发送密码是第二个巨大的安全错误。
  3. 第三,此时将其包含在网页中只会雪上加霜。

与此相比,他们扔掉箱子是无害的。它实际上可以在安全性和可用性之间进行合理的权衡。也可能是他们使用了一些不支持大写/小写的古老后端系统。我已经在大型机上看到了这一点。应该在某个地方写密码不区分大小写,但老实说,与前三击相比,这一次几乎不值得一提。

老实说,我们不知道

他们可以以明文形式存储密码,也可以加密存储。两者都将是非常灾难性的。当您登录时,他们可以将其存储在会话(即服务器端)中,这将不那么灾难性,但仍然很糟糕。他们甚至可以让您将其存储在 cookie 中(即客户端),然后让显示用户配置文件的脚本将其插入表单,这仍然很糟糕。

不管是什么,没有充分的理由,或理智的理由,或者实际上我可以想象的任何理由,为什么一个人需要,甚至想要不必要地保留密码并且比绝对必要的时间更长。或者,为什么它需要在表格中。

您将秘密保留的时间越长,无论多么安全或不安全,“某事”发生的可能性就越高,秘密不再是秘密。

所以......不管它是什么,它通常都不是一个好的模式。它到底有多严重,我们无法判断。

大写密码也是如此。我们不知道他们在那里做什么。他们可能会认为每个密码都是大写的,这将是非常糟糕的,因为它使暴力攻击的效率大约提高了一倍。尽管考虑到可能存储明文密码,但这有点可以忽略不计。在线暴力攻击不太可能并且很容易被挫败,而离线攻击,嗯......如果密码是明文......你知道的。谁在乎,那个时候。

他们可能只是为该表单将其大写,因此一些“超级智能”的 Javascript 片段会在更改密码时告诉您“这太相似了”,无论如何。我们不知道。但同样,不管它是什么,它都不好。