浏览器密码管理

谷歌浏览器自动填充密码

用过谷歌浏览器(或火狐浏览器之类)的小伙伴一定对其所提供的自动填充密码产生依赖。这功能太方便了,只用登陆过一次,浏览器就会帮你记住密码。等下次再打开网页都不用手动输入了,密码已经在表单填充好了,一个回车就能登陆。

想起以前我就那么一两个网络帐号(QQ),现在起码都几十个了。当帐号变得越来越多,我就越来越难分清哪些网站用哪些帐号密码。现在这自动填充密码功能省事省心,既不用记脑子里也不用写在小纸条上,多方便,但问题是,这安全吗?

本地密码窃取

使用自动填充密码功能是需要先登陆一个谷歌帐号的(多么精明的用户捆绑策略),方便在不同的设备使用该功能。看上去这些用户信息是保存在云端的,但事实上它在本地是有备份的:

路径:c:\[用户]\Local Settings\Application Data\Google\Chrome\User Data\Default\Login Data

这是一个sqlite在本地的密码本,当然,这里面的密码是经过加密的。但加密用的密文是用户的Windows密码(Windows密码为空则显示明文密码),这是个定值。而且使用Windows密码的api是可以被其他软件调用的,一款ChromePass软件,可自动获取浏览器密码并调用Windows密码进行解密。(需要在当前用户电脑进行)
如果是获取该密码文件并使用另一台设备进行读取,或把Windows密码修改后再读取,则不会还原出明文。

查看明文密码

谷歌浏览器是提供查看密码功能的:

选择上面的查看Google帐号密码用的是谷歌帐号的密码,而下面查看已保存的密码则是验证Windows密码(覆盖范围较少)。
二者知其一即可获取用户保存的帐号信息。

而更为简单的方法是,访问设置里透露的网站,触发浏览器的密码自动填充,然后F12修改表单属性
type="password"修改为type="text"

然后表单内的密码就会变成明文。

远程密码窃取

上面的基于本地获取密码的,用作密码备忘录使用还是挺合适的,对于黑客而言,都弄到你电脑了,哪里还有安全性这说法…

首先我们需要了解密码自动填充的触发条件(可能会略有偏差):
– 域名/IP

<

form>表单
– id或name名称

后两项似乎挺容易仿造的,我自己尝试了用iframe框架(Ajax动态全屏显示,不看url无法发觉)引用另一个登陆页面,能触发密码填充…我不是很清楚这触发条件了。但即使这样,还是需要远程获取表单信息的,由于iframe内不属于同源,用dom是无法访问和修改标签的。

后来找了下资料,浏览器是识别页面第一个type=text和type=password的表单的。

如果需要在网站钓鱼,可以精心构造个外观一模一样还能欺骗浏览器的网站,可以用iframe引用网站,但需要突破同源限制,也可以网页种马等等。另外,现在网上随便都能找到xss表单劫持脚本。

如果是针对某个用户的话,使用反射型xss可以杀人与无形,点击即中招。

如果使用iframe伪造网页的话,就算不能触发自动填充密码,那用户手动输入密码后还是能窃取到的(网络世界就是这么不安全)。

总结

看完了觉得XX浏览器很不负责任,有很多吐槽点。但他们认为这只是一种托付方式,如果让别人接触到你的电脑,那你的电脑内所有的东西都不安全,尽管加密了也是如此。就像别人已经进入你的房子了,你的柜子有没有上锁已经显得不那么重要了。

(原本我是想研究突破同源限制进行自动填充密码窃取的,同源政策在不同浏览器及不同版本中都有各种各样的定义,很大概率是存在漏洞的)

发表评论

电子邮件地址不会被公开。 必填项已用*标注