【问题标题】:WordPress Cleartext Password Stored In Browser MemoryWordPress 明文密码存储在浏览器内存中
【发布时间】:2018-11-08 14:27:28
【问题描述】:

我一直在对现有的 WordPress 安装进行渗透测试。我看到的一个持久性问题是 WP 将明文密码存储在浏览器内存中。

重现:

  1. 登录 WordPress,然后注销。关闭该特定选项卡, 但让 Chrome 保持打开状态。

  2. 创建浏览器内存的转储文件。

  3. 打开转储文件并搜索密码,您将看到它以明文形式显示。

我怎样才能防止这种情况发生?

不管某人实际以这种方式查看密码的上下文如何,使用明文密码不是一个好习惯吗?

参考:https://cwe.mitre.org/data/definitions/316.html

【问题讨论】:

  • 你用什么工具导出的?官方浏览器插件、nirsoft 等?
  • 嗨@f.overflow,实际上这可以在没有任何工具的情况下完成。在任务管理器 => 应用程序中,右键单击 Chrome 并单击“创建转储文件”。打开该文件,然后搜索您的 WP 密码,它可以被视为文本。

标签: wordpress security browser passwords penetration-testing


【解决方案1】:

“我怎样才能防止这种情况发生?”

这不是 WordPress 的问题,因为 WordPress 不控制客户端的垃圾收集。当 JavaScript 引擎可用于此任务时,密码会在短时间内消失。

“使用明文密码不是个好习惯吗?”

浏览器正在向 WordPress 传递明文密码,这就是用户名密码验证(也称为基本验证)的工作原理。

【讨论】:

  • 谢谢,WP肯定有错吗? WP 不应该将用户凭据存储在浏览器内存中。密码应加密或以加盐哈希格式存储。参考:cwe.mitre.org/data/definitions/316.html
  • 密码存储在浏览器内存中,因此相关的应用程序是浏览器的JVM。 WP 被视为仅在 WP 服务器上的应用程序。有趣的是,PHP 也有完全相同的问题。脚本语言(JS、PHP)没有减轻它的原因是脚本的生命周期很短。 Java 和 C# 的对象在其堆中保存了加密的字符串。
  • 有趣,感谢您的 cmets。 JVM,你说的是浏览器内存吧?
  • 我写的是 JVM,但指的是渲染引擎,因为这是一个 html 输入,而不是 JS 变量。答案还是一样,要靠客户端垃圾回收算法来清理内存。顺便说一句:如果您使用多进程浏览器,例如谷歌浏览器,关闭选项卡时不会遇到此问题,因为相关进程会立即终止。但是,这并不意味着 Chrome 更安全,因为当您重复使用同一个标签页时也会发生同样的问题。
  • @David.J 我指的是答案:“……这就是用户名-密码身份验证(也称为基本身份验证)的工作方式。”。虽然您可以将此称为“基本形式的身份验证”,但我仅在 HTTP 上下文中知道“基本身份验证”,前几个搜索结果页面似乎同意. WP 确实通过 HTTP 发送凭据,但它不是基本身份验证。
猜你喜欢
  • 2017-05-04
  • 2020-09-21
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-27
相关资源
最近更新 更多