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实现类继承实例
Jul 04 Python
Windows下PyMongo下载及安装教程
Apr 27 Python
python3实现跳一跳点击跳跃
Jan 08 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
python基于C/S模式实现聊天室功能
Jan 09 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
详解Python文件修改的两种方式
Aug 22 Python
python numpy中cumsum的用法详解
Oct 17 Python
python输出数组中指定元素的所有索引示例
Dec 06 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
Python 获取异常(Exception)信息的几种方法
Dec 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
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
详解js闭包
2014/09/02 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
vue中的scope使用详解
2017/10/29 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
Python之py2exe打包工具详解
2017/06/14 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
Django 拆分model和view的实现方法
2019/08/16 Python
python实现人机猜拳小游戏
2020/02/03 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
经典优秀个人求职信分享
2013/12/12 职场文书
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
测试工程师职业规划书
2014/02/06 职场文书
法律七进实施方案
2014/03/15 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
python套接字socket通信
2022/04/01 Python