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中for循环的使用
Apr 14 Python
bpython 功能强大的Python shell
Feb 16 Python
Python中set与frozenset方法和区别详解
May 23 Python
tensorflow实现简单的卷积网络
May 24 Python
Python中.join()和os.path.join()两个函数的用法详解
Jun 11 Python
python找出完数的方法
Nov 12 Python
python 实现调用子文件下的模块方法
Dec 07 Python
Python autoescape标签用法解析
Jan 17 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
May 26 Python
详解Python中的for循环
Apr 30 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 图片上传类代码
2009/07/17 PHP
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
一个收集图片的bookmarlet(js 刷新页面中的图片)
2010/05/27 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
Bootstrap精简教程
2015/11/27 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
Python中多线程及程序锁浅析
2015/01/21 Python
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
详解python单元测试框架unittest
2018/07/02 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
python正则表达式实例代码
2020/03/03 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
python集合的新增元素方法整理
2020/12/07 Python
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
2021年国漫热度排行前十,完美世界上榜,第四是美国动画作品
2022/03/18 国漫
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers