python与sqlite3实现解密chrome cookie实例代码
作者:kwsy2008
这篇文章主要介绍了python与sqlite3实现解密chrome cookie实例代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
本文研究的主要问题:有一个解密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实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
您可能感兴趣的文章:
- 基于sqlalchemy对mysql实现增删改查操作
- 基于SQLAlchemy实现操作MySQL并执行原生sql语句
- python数据库操作mysql:pymysql、sqlalchemy常见用法详解
- python orm 框架中sqlalchemy用法实例详解
- python使用SQLAlchemy操作MySQL
- Python SQLAlchemy入门教程(基本用法)
- python SQLAlchemy的Mapping与Declarative详解
- python SQLAlchemy 中的Engine详解
- Python流行ORM框架sqlalchemy安装与使用教程
- python 获取sqlite3数据库的表名和表字段名的实例
- Python_查看sqlite3表结构,查询语句的示例代码
- python使用sqlite3时游标使用方法
- Python SQLite3简介
- Python使用flask框架操作sqlite3的两种方式
- Python SQLite3数据库日期与时间常见函数用法分析
- Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
- Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
- Python sqlite3事务处理方法实例分析
- Python简单操作sqlite3的方法示例
- Python3+SQLAlchemy+Sqlite3实现ORM教程