π ΠΠ°ΠΊ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΊΡΠΊΠΈ sqlite format 3 Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°?
ΠΠΎΠ³Π΄Π° Π²Ρ Ρ ΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΡΠΊΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ SQLite 3, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΈΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
- Π‘Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ SQLite.
- ΠΠ°ΡΠ΅ΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Python, ΡΡΠΎΠ±Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΊΡΠΊΠΈ:
- ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ "/ΠΏΡΡΡ/ΠΊ/ΡΠ°ΠΉΠ»Ρ/ΠΊΡΠΊΠΈ" Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΡΡ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΡΠ°ΠΉΠ»Ρ ΠΊΡΠΊΠΈ.
pip install pysqlite3
import sqlite3
import os
import sys
def decrypt_cookie(cookie_path):
try:
# ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
SQLite Cookie
conn = sqlite3.connect(cookie_path)
cursor = conn.cursor()
# ΠΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΊΡΠΊΠΈ
cursor.execute('SELECT * FROM cookies')
cookies = cursor.fetchall()
# ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Π΄Π°Π½Π½ΡΠ΅
for row in cookies:
print(row)
# ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
conn.close()
except Exception as e:
print(e)
if __name__ == '__main__':
cookie_path = '/ΠΏΡΡΡ/ΠΊ/ΡΠ°ΠΉΠ»Ρ/ΠΊΡΠΊΠΈ'
decrypt_cookie(cookie_path)
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ SQLite Cookie ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΊΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΊΡΠΊΠΈ SQLite format 3?
ΠΠ°Π³ΡΡΠ·ΠΊΠ° SQLite Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠ»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ ΠΊΡΠΊΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ SQLite format 3 Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ SQLite. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ SQLite3 Π² Python:
import sqlite3
# ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
conn = sqlite3.connect('cookiefile')
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ°
cursor = conn.cursor()
# ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
query = "SELECT * FROM cookies"
cursor.execute(query)
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ°
results = cursor.fetchall()
# ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ
conn.close()
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΠΊΡΠΊΠΈ
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ SQLite, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ SQL-Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ "cookies". Π ΡΠ°Π±Π»ΠΈΡΠ΅ "cookies" ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΊΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠΌΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠΌΠ΅Π½, ΠΏΡΡΡ ΠΈ Π΄Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΡΠΊΠΈ.
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ "cookies"
query = "SELECT * FROM cookies"
cursor.execute(query)
results = cursor.fetchall()
for row in results:
name = row[0]
value = row[1]
domain = row[2]
path = row[3]
creation = row[4]
expiry = row[5]
print(f"Name: {name}")
print(f"Value: {value}")
print(f"Domain: {domain}")
print(f"Path: {path}")
print(f"Creation: {creation}")
print(f"Expiry: {expiry}")
print()
Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΊΡΠΊΠΈ
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΊΡΠΊΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ SQLite format 3 ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Ρ. Π§ΡΠΎΠ±Ρ ΠΈΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ, Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π»ΠΈΠ±ΠΎ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ SQLite, Π»ΠΈΠ±ΠΎ Π±ΡΡΡ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΡΠ»ΠΈ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ SQLite, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
# ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ»ΡΡΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ
query = "SELECT key FROM meta WHERE name='ciphertext'"
cursor.execute(query)
key = cursor.fetchone()[0]
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ»ΡΡΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΊΡΠΊΠΈ:
import sqlite3
from Cryptodome.Cipher import AES
from Cryptodome.Util.Padding import unpad
# Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΡΠΊΠΈ
def decrypt_value(key, value):
cipher = AES.new(key, AES.MODE_GCM, nonce=value[:12])
decrypted_value = unpad(cipher.decrypt(value[12:]), 16)
return decrypted_value.decode()
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ "cookies"
query = "SELECT value FROM cookies"
cursor.execute(query)
results = cursor.fetchall()
for row in results:
encrypted_value = row[0]
decrypted_value = decrypt_value(key, encrypted_value)
print(f"Encrypted Value: {encrypted_value}")
print(f"Decrypted Value: {decrypted_value}")
print()
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΡΠΊΠ°ΠΌ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ SQLite format 3 ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ SQLite, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° "cookies" Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
import sqlite3
try:
# ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
conn = sqlite3.connect('cookiefile')
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ°
cursor = conn.cursor()
# ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
query = "SELECT * FROM cookies"
cursor.execute(query)
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ°
results = cursor.fetchall()
# ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ
conn.close()
except sqlite3.Error as e:
print(f"Error: {e}")
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ try-except Π² ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΎΠ±Π·ΠΎΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΊΡΠΊΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ SQLite format 3. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ Π²ΠΎΠΏΡΠΎΡΡ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΈΡ !
Π£Π΄Π°ΡΠΈ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ!