Chrome保存密码的泄露方法 - 不知道PC账户密码的情况
这是Chrome密码黑客系列的第3部分。
在前面的文章中,我们确认了如果知道PC账户的密码,
就能轻松泄露保存的密码。
在本文中,我们将了解即使不知道PC账户的密码,
也能泄露Chrome中保存的所有密码的方法。
这种黑客攻击不是远程攻击,而是身边的人对你进行的本地攻击(Local Attack)。
Chrome密码自动填充的另一个漏洞
Chrome浏览器的密码自动填充
是减少登录不便的实用功能。
但如果仔细观察这个功能的运作结构,
即使不知道PC账户密码,
只要屏幕开着,密码就可能泄露,
存在这样的额外漏洞。
本文将说明即使不知道PC账户密码的人,
只要能在暂时无人看管的PC前坐一会儿,
就能通过什么方式获取Chrome中保存的密码。
首先让我们看看日常使用环境中可能发生的情况。
本地攻击(Local Attack)的危险性
我们通常会在离开座位时锁定屏幕。
但在繁忙的工作中、出去买咖啡的片刻,
或者出去接电话的短暂时间,
忘记锁屏的情况任何人都可能遇到。
Windows的自动锁定功能
大多也设置为5分钟、10分钟这样比较宽松的时间。
但本地攻击(Local Attack)
正是利用这短暂的瞬间。
如果PC屏幕开着且浏览器打开着,
攻击者无需任何额外信息就能获取密码。
自动填充密码的结构
通过自动填充填写的密码输入框
在屏幕上以●●●●的形式被遮挡,
但在浏览器内部,密码已经以明文存在。
HTML的<input type="password">元素
只是"遮挡显示"密码,
实际值原样存储在DOM元素的value属性中。
因此,通过开发者工具或脚本
可以直接读取这个值。
这个结构本身就是使本地攻击成为可能的核心要素。
方法1:利用开发者工具
这个方法利用Web开发工具(Developer Tools)
直接查看自动填充的密码。
即使不懂JavaScript也能照做。
- 进入密码已自动填充的登录页面。
- 确认密码栏以●●●●的形式填充。
- 在密码输入框上点击鼠标右键。
- 选择**
检查(Inspect)**菜单。 - 开发者工具打开,相应的HTML代码会被高亮显示。
- 确认
<input type="password" ...>元素。 - 确认这里的
id值或name值。 - 点击开发者工具顶部的Console标签。
- 输入以下命令。
※将’password’部分替换为刚才确认的实际ID。console.log(document.getElementById('password').value); - 按Enter键,密码就会原样显示。
看起来有点长,但做过一次后不到30秒就能完成整个过程。
方法2:利用Firefox
这个方法利用Firefox浏览器的"从其他浏览器导入数据"功能。
因为是Firefox的基本功能,所以很容易照做。
- 下载并安装Firefox。
- 首次运行时会出现"从其他浏览器导入数据"界面。
- 选择Chrome。
- 在导入项目中勾选登录信息(Passwords)。
- 点击"下一步",Chrome的密码就会转移到Firefox。
- 在Firefox的菜单中打开密码(about:logins)。
- 所有网站的用户名和密码都会以明文显示。
- 选择"导出密码(Export)",
可以将全部密码保存为CSV文件。
特别的是,Firefox在查看保存的密码时不会要求输入PC账户密码。
而且Chrome中保存的密码可以利用Firefox提供的数据导入功能
轻松转移到Firefox。
便利功能造成的结构性风险
上述两种方法
完全不使用任何专业的黑客技术或工具。
虽然是荒唐的情况,但利用Firefox就能查看Chrome中保存的所有密码。
但前提是PC屏幕必须是开着的。
所以如果周围有人真的下定决心要窃取Chrome密码,
就会趁你暂时离开座位的时候下手。
在你短暂离开的瞬间,可以迅速安装Firefox并泄露Chrome的所有密码。
短暂离开座位没有锁屏的瞬间可能导致账户窃取,
在共用PC、办公PC、家庭PC等环境中,这完全可能发生。
自动填充功能只是为了便利而存在的功能,
不是为了提供强大安全性的功能,我们必须清楚地理解这一点。
那么应该怎么办呢?
不能放弃密码自动填充功能。
下一篇文章将详细说明
能够避免这些风险并安全管理密码的
专用密码管理工具(KeePassXC)。
系列文章列表: