一、基于谷歌内核浏览器的cookie文件保存位置
以目前流行的三款基于Chrominum内核的浏览器为例,Cookie文件保存在当前用户的AppData目录下,注意该文件没有扩展名。
1、谷歌的Chrome
C:\Users\当前用户\AppData\Local\Google\Chrome\User Data\Default\Network\cookies
2、奇虎的360se
C:\Users\当前用户\AppData\Roaming\360se6\User Data\Default\Network\cookies
3、微软的Edge
C:\Users\当前用户\AppData\Local\Microsoft\Edge\User Data\Default\Network\cookies
注意360的保存位置略有不同。
二、Cookie文件的格式和加密方式
该Cookie文件是sqlite格式的数据库文件,可以用sqlite数据库浏览工具打开查看,如下图:

打开观察发现cookie值是被加密的,采用的加密算法是AES,确切的说是GCM算法。要进行解密则需要知道秘钥key和向量iv。那么key和iv保存在哪?
三、秘钥key在哪
秘钥文件在"Local State"文件中,注意这是一个json文件,不是目录,所在位置在Cookies文件的上两层目录中。对应上述三款浏览器分别如下:
C:\Users\当前用户\AppData\Local\Google\Chrome\User Data\Local State
C:\Users\当前用户\AppData\Roaming\360se6\User Data\Local State
C:\Users\当前用户\AppData\Local\Microsoft\Edge\User Data\Local State
该文件是一个json文件,其中的"os_crypt/encrypted_key"键值是以base64的编码保存的加密后的key。base64解码后是一个二进制数据块。前5个字符是"DPAPI",是加密算法标记,可以忽略,后面才是被加密后的key。
DPAPI(Data Protection Application Programming Programming Interface)是Windows操作系统内置的数据加密接口,主要用于保护敏感信息(如密钥、用户凭据等)。这是windows特有的加密算法,不在openssl算法库中,只能使用windows自带的API函数CryptUnprotectData对加密后的key进行解密,其它语言应该有对API的封装或实现。
为何要采用DPAPI的方式对key进行加密呢?
它的好处是,只有在本机调用CryptUnprotectData函数对本机的key进行解密才能成功,如果将"Local State"拷贝到其它机器进行解密则会失败。也就是说DPAPI在加密的过程中加入了当前用户的"身份"和"机器"信息,解密时会进行校验。这种设计就确保了你无法通过"偷窃"的方式对key值进行解密(比如拷贝到自己的机器上慢慢研究),只能在"案发现场"进行解密,从而在某种程度上保护了cookie的安全。
四、向量iv在哪
iv就在cookie加密的数据中,cookies数据库文件的"encryped_value"字段中。其编码格式为:3字节的标志符+12字节iv+真正的AES加密数据。
该值的前三个字符是"v10",可忽略,从第3个字符(以0为起始值)开始的后12个字节是iv。AES加密数据从第15个字节开始到最后。
到此为止我们已经得到了key、iv以及待解密的AES数据。接下来就可以调用AES解密函数对加密数据进行解密了。
五、CookieReader工具介绍
由于谷歌的Chromium内核在运行时会以"完全独占"的方式(其它程序无法共享读取)打开cookies数据库文件,因此使用该工具前要关闭对应的浏览器,否则将无法读取到该浏览器的cookie数据。当然也可以将cookies文件拷贝出来进行读取。即使以这种方式也要先关闭对应的浏览器,否则拷贝出来的cookies文件是空文件。强烈建议拷贝出来后进行读取。
同样,在该工具读取Cookies文件时,对应的浏览器也无法正常读取到Cookie数据,因为无法独占打开数据库了。点击下载CookieReader工具

下拉框有四种模式:
1、自选择cookie文件
该方式下,用户可以自己指定需要打开的Cookie文件, 比如将Cookies文件拷贝到本机的其它地方进行读取。
2、谷歌Cookie文件
该方式下,用户无需选择Cookie文件,该工具直接读取当前谷歌浏览器的Cookie目录所在的文件,此时务必要关闭谷歌浏览器。
3、360 Cookie文件
同上,读取360浏览器的Cookie。
4、Edge Cookie文件
同上,读取微软Edge浏览器的Cookie文件。