Chrome 33+浏览器 Cookies encrypted_value解密脚本(python实现)

Chrome浏览器版本33以上对Cookies进行了加密,用SQLite Developer打开Chrome的Cookies文件就会发现,原来的value字段已经为空,取而代之的是加密的encrypted_value。

如下图所示
chrome-cookies-encrypted-value

从stackoverflow.com了解到。Windows上Chrome加密Cookies采用的CryptUnprotectData函数,通过网络搜索发现,CryptUnprotectData函数用途非常广泛。连Windows电脑上保存的wifiI密码都是用这个函数加密的。大牛 @李劼杰?已经用这个解密函数在python里实现了获取本机保存的wifi密码(http://www.lijiejie.com/python-get-all-saved-wifi-passwords/)和Chrome浏览器里已保存的账号密码(http://www.lijiejie.com/python-get-chrome-all-saved-passwords/)。运行他的脚本让我惊出一声冷汗(如下图),原来Chrome这么不安全,要是Login Data文件被别人获取,真的是非常危险的事情。
[chrome-password

参考大牛 @李劼杰 的代码,我改编出来了一个Chrome 33+浏览器 Cookies encrypted_value解密脚本(python实现),代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
__author__ = 'ftium4.com'
import sqlite3
import win32crypt
outFile_path=r'D:chrome_cookies.txt';
sql_file= r'C:Users\jiangling\AppData\Local\Google\Chrome\User Data\DefaultCookies';
sql_exe="select host_key,name,value,encrypted_value from cookies";
conn = sqlite3.connect(sql_file)
for row in conn.execute(sql_exe):
pwdHash = str(row[3])
try:
ret = win32crypt.CryptUnprotectData(pwdHash, None, None, None, 0)
except:
print 'Fail to decrypt chrome cookies'
sys.exit(-1)
with open(outFile_path, 'a+') as outFile:
outFile.write('host_key: {0:<20} name: {1:<20} value: {2} nn'.format(
row[0].encode('gbk'), row[1].encode('gbk'),ret[1].encode('gbk')) )
conn.close()
print 'All Chrome cookies saved to:n' + outFile_path

Chrome 33+浏览器 Cookies encrypted_value解密脚本(python实现)

http://www.ftium4.com/chrome-cookies-encrypted-value-python.html

作者

龙爪槐守望者

发布于

2014-06-06

更新于

2021-02-09

许可协议

评论