python与sqlite3实现解密chrome cookie实例代码


Posted in Python onJanuary 20, 2018

本文研究的主要问题:有一个解密chrome cookie的事情,google出了代码,却不能正常执行,原因在于sqlite3的版本太低,虽然我切换到了python3.5的环境,但sqlite3的版本也只有3.6。

google了许久,终于找到方法:

1、 进入页面 http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/

2、 下载 atomic-sqlite-sqlite-3.8.5-2.el6.art.x86_64.rpm

3、 rpm -Uvh atomic-sqlite-sqlite-3.8.5-2.el6.art.x86_64.rpm

4、 执行命令 sqlite3 -version 一切都ok啦

顺便附上解析cookie的代码

#coding=utf-8 
import os 
import sqlite3 
 
#import keyring 
from Crypto.Cipher import AES 
from Crypto.Protocol.KDF import PBKDF2 
 
#for mac 
#my_pass = keyring.get_password('Chrome Safe Storage', 'Chrome') 
#my_pass = my_pass.encode('utf8') 
#iterations = 1003 
#cookie_file = os.path.expanduser('~/Library/Application Support/Google/Chrome/Default/Cookies') 
 
#for linux 
my_pass = 'peanuts'.encode('utf8') 
iterations = 1 
cookie_file = 'Cookies' 
 
salt = b'saltysalt' 
length = 16 
iv = b' ' * length 
 
  
 
def expand_str(token): 
  token_len = len(token) 
  expand_len = (token_len // length + 1) * length - token_len 
  return token.encode('ascii') + b'\x0c' * expand_len 
 
 
def aes_encrypt(token): 
  key = PBKDF2(my_pass, salt, length, iterations) 
  cipher = AES.new(key, AES.MODE_CBC, IV=iv) 
  enc_token = cipher.encrypt(token) 
  return b'v10' + enc_token 
 
 
def aes_decrypt(token): 
  key = PBKDF2(my_pass, salt, length, iterations) 
  cipher = AES.new(key, AES.MODE_CBC, IV=iv) 
  dec_token = cipher.decrypt(token) 
  return dec_token 
 
 
def query_cookies(): 
  with sqlite3.connect(cookie_file) as conn: 
    sql = "select host_key, name, encrypted_value from cookies where name = 'jzysYonghu'" 
    #sql = "select * from cookies" 
    result = conn.execute(sql).fetchall() 
  return result 
 
 
def write_cookies(enc_token): 
  with sqlite3.connect(cookie_file) as conn: 
    b = sqlite3.Binary(enc_token) 
    sql = """update cookies set encrypted_value = ? where name = 'remember_token'"""  
    conn.execute(sql, (b, )) 
 
def change_user(token): 
  write_cookies(ase_encrypt(expand_str(token))) 
 
if __name__ == '__main__': 
  data = query_cookies()[0][2] 
  print(data) 
  print(len(data)) 
  print(aes_decrypt(data[3:]))

加密后在字符串前面添加了一个v10,因此解密前要先去掉

总结

以上就是本文关于python与sqlite3实现解密chrome cookie实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python读写Excel文件的实例
Nov 01 Python
Python中列表和元组的相关语句和方法讲解
Aug 20 Python
python学习必备知识汇总
Sep 08 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
Flask框架Flask-Principal基本用法实例分析
Jul 23 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
python写文件时覆盖原来的实例方法
Jul 22 Python
通过实例解析Python文件操作实现步骤
Sep 21 Python
如何用python实现一个HTTP连接池
Jan 14 Python
python使用shell脚本创建kafka连接器
Apr 29 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 #Python
浅析python协程相关概念
Jan 20 #Python
Python实现可自定义大小的截屏功能
Jan 20 #Python
python+matplotlib绘制饼图散点图实例代码
Jan 20 #Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 #Python
Python搭建FTP服务器的方法示例
Jan 19 #Python
python re模块findall()函数实例解析
Jan 19 #Python
You might like
解析php开发中的中文编码问题
2013/08/08 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
python使用turtle库绘制树
2018/06/25 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
为什么说python更适合树莓派编程
2020/07/20 Python
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
办公室前台岗位职责范本
2013/12/10 职场文书
遗体告别仪式主持词
2014/03/20 职场文书
党员公开承诺书内容
2014/05/20 职场文书
服务承诺书格式
2014/05/21 职场文书
经典团队口号
2014/06/06 职场文书
2014个人年度工作总结
2014/12/15 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
详解PyTorch模型保存与加载
2022/04/28 Python