破解Firefox密码管理器加密的信息

This post is written in Chinese. Please consider using Google Translate

Firefox用习惯了,每次上网登录网站的时候总会依赖密码管理器自动填写密码,就这样时间长了,连自己的密码是什么也忘了。只有Firefox密码管理器还记得,只用从它下手了。

首先找到一个“型号密码查看器”,可以看密码文本框中的文字。打开Firefox,自动填充密码后,使用这个软件,不料没有反应。Firefox中的文本框做了特殊的处理,不能这样看。

即然这样,只有从Firefox密码管理器本身入手了。

我的Firefox版本是3.01,Firefox密码管理器文件在C:\Documents and Settings\用户名\Application Data\Mozilla\Firefox\Profiles***.default\signons3.txt。

打开signons3.txt一看,所有用户名和密码都被加密了,还是没法看出密码。

去网上搜了一下,也没有人研究如何破解signons3.txt的信息。我想了又想,想出一个偷梁换柱的办法。既然网站登录输入框中的信息不是被加密的,而我可以直接读取Post信息,何不让Firefox把密码Post给我?

从signons3.txt的结构中了解到是一个网站对应一条信息, 例如在126.com,用户名的文本域为user,密码文本域为pass,记录信息如下: http://www.126.com user MDoEEPgAAAAAAAAAAAAAAAAAAAvcNAwcECDJ5a7BxViHnowbb/GPEgoEwFAYIKoZIhzFAYIKoZIhvcNA *pass MDoEEPgAAAAAAAAAAAAAAAAAAAEcECm8VTbnWY58AWnPwMSDZF74fxi7BBDi7lLq8Odey/lmBBBdoAxw

http://entry.126.com
---
.

我本机的IP为192.168.1.253,在signons3.txt文件尾添加以下信息,就是把http://www.126.com换成http://192.168.1.253,保存文件,重启Firefox。 http://192.168.1.253 user MDoEEPgAAAAAAAAAAAAAAAAAAAvcNAwcECDJ5a7BxViHnowbb/GPEgoEwFAYIKoZIhzFAYIKoZIhvcNA *pass MDoEEPgAAAAAAAAAAAAAAAAAAAEcECm8VTbnWY58AWnPwMSDZF74fxi7BBDi7lLq8Odey/lmBBBdoAxw

http://entry.126.com
---
.

然后我在本地建立一个PHP环境(或者上传到一个服务器上,IP要正确),写一个这样的程序

其中 input name="user" 和 input name="pass" 要改成与signons3.txt添加的相同。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
  用户名<input name="user" type="text" />
  密码<input name="pass" type="password" />
  <input type="submit" name="Submit" value="提交" />
</form>
<pre>
<?php print_r($_POST); ?>

保存,在Firefox浏览器中打开,http://192.168.1.253/pass.php。点一下文本框,让Firefox自动完成填写,点提交。然后,密码就这样暴露出来了。

总结一下,这次密码找回行动充分暴露了Firefox的安全隐患,起码我以后再也不用密码管理器了。 其实如果让我来做的话,加密还可以加强的,比如把域名作为密钥等等手段(这样也不行,还能改hosts文件呢)。 总之这个东西是很容易暴露你的信息的,也许有写网站写了脚本,专门欺骗密码管理器来盗取你的密码。

本文写到这里的时候想起来另一种更简单的办法,不用PHP了。其实传地方式改成GET就行了,具体我就不说了,呵呵。

[BYVoid 原创]

Related posts