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之wxPython菜单使用详解
Sep 28 Python
Python中遇到的小问题及解决方法汇总
Jan 11 Python
一文总结学习Python的14张思维导图
Oct 17 Python
import的本质解析
Oct 30 Python
django rest framework之请求与响应(详解)
Nov 06 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
Python实现的读写json文件功能示例
Jun 05 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
python生成特定分布数的实例
Dec 05 Python
Python namedtuple命名元组实现过程解析
Jan 08 Python
关于tf.TFRecordReader()函数的用法解析
Feb 17 Python
Python二元算术运算常用方法解析
Sep 15 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实现文件上传和多文件上传
2015/12/24 PHP
Yii全局函数用法示例
2017/01/22 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
ExtJS 入门
2010/10/29 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
Python中format()格式输出全解
2019/04/12 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
2019/12/10 Python
Python测试线程应用程序过程解析
2019/12/31 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
Python接收手机短信的代码整理
2020/08/02 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
python数据抓取3种方法总结
2021/02/07 Python
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
丑小鸭教学反思
2014/02/03 职场文书
一分钟演讲稿
2014/04/30 职场文书
军事博物馆观后感
2015/06/05 职场文书
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL