现在主流的浏览器都支持记住账号密码的功能,以便于用户经常性访问网站的时候可以实现快速且便捷的登录。很多人为了方便,会习惯性的选择击记住密码,甚至是在公共电脑上。这样非常容易导致泄露自己的密码信息。
浏览器保存的密码,在浏览器中查看时会显示星号,因此有些人觉得不会造成密码泄露。但利用一点小手法,就可以得到保存的密码。下面我就抛砖引玉,以Chrome浏览器为例,利用Python脚本来获取谷歌浏览器(Chrome)中保存的账号密码。
默认情况下谷歌浏览器使用SqLite3保存记住的账号和密码,密码使用的CryptUnprotectData加密算法。
下面来具体介绍一下实现过程:
我拿Windows操作系统下的Chrome浏览器来实际操作一下保存的账号密码的读取和解密。
网上有很多工具可以实现这个功能,读者也可以利用自己的方法来实现。目的在于让大家注意自己的账号密码安全,不要轻易的在浏览器中选择保存密码,即便保存了也需要定期删除。当离开自己的电脑时锁屏,公众电脑不保存密,时时刻刻注意保护个人的信息安全。
① 下面是编写的读取Chrome保存的账号密码的Python脚本。
注意运行脚本前需要关闭谷歌浏览器,否则会出错。具体的Python代码如下:
connection =sqlite3.connect("C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Login Data")
cursor = connection .cursor()
v = cursor.execute('SELECT action_url, username_value, password_value FROM logins')
value = v.fetchall()
看一下是否正确读取了数据库文件,从下图中可以看出已经可以读取明文的登录地址以及账号了,不过密码是经过加密的,需要解密,接下来我们来实现解密。
② 解密使用的是win32crypt库中的CryptUnprotectData函数。
下面是部分解密代码:
password = win32crypt.CryptUnprotectData
(password, None, None, None, 0)[1]
下面是解密出的密码的截图:
从图中可以看出已经解密成功了。只需要把解密出来的密码和账号等信息保存在txt文件中,基本就成功了。
③账号密码写入txt文件。
以下是部分代码:
filename1 = 'c:\\adm1n.txt'
with open(filename1, 'w') as f:
for i in info_list:
f.write(str(i)+'\n')
f.close()
直接默认存放在c:\\adm1n.txt文件中,查看一下保存的结果。
从上图可以明显看到已经可以成功获取到登录的网址,用户名以及密码。一个人很少能做到一个账户对应一个密码,绝大多数人的密码都是相同或者相近似,所以即使只有1个账号密码被泄露,也很容易被恶意企图的人关联到你的其他账号,造成更大的危害。
很多人可能说我的电脑上没有Python环境,没法运行上面介绍的读取账号和密码的脚本。这里不用担心,强大的Python提供了把Python脚本打包转换成exe可执行文件的功能,我们利用这个功能把该py文件打包成exe文件。
不过要注意一下,运行该exe文件时需要使用管理员身份来运行,并且关闭Chrome浏览器。
个人信息安全需要时时刻刻的注意,单从上面介绍的内容就可以轻松实现获取保存在各种浏览器中的密码,所以不要在浏览器中轻易使用记住密码功能。
领取专属 10元无门槛券
私享最新 技术干货