Domanda Cookie logger in Python

Hi. You can just download cookies from your browser directory.
For chrome:
C:\Users\Username\AppData\Local\Google\Chrome\User Data\Default

From there, you can replace it in your directory.
Or you can use Selenium and load these cookies into it
 
  • Mi piace
Reazioni: Maxwell2609

Maxwell2609

Utente Silver
29 Ottobre 2020
137
24
33
75
Salve, vorrei sapere se esiste qualche libreria Python che permetta di ottenere i cookie dal browser in modo da scaricarli ed utilizzarli su un altro computer (ad esempio per bypassare un login). Oppure, più semplicemente, se basti o no copiare il file SQLite contenente i dati dei cookie. Grazie in anticipo.
 
Hi. You can just download cookies from your browser directory.
For chrome:
C:\Users\Username\AppData\Local\Google\Chrome\User Data\Default

From there, you can replace it in your directory.
Or you can use Selenium and load these cookies into it
ho provato ma non funziona, sapresti dirmi esattamente quali file devo copiare?
 
Copiare solo il file sqlite non basta, i valori dei cookie in browser come Firefox e Chrome sono cifrati con la master key, che viene ottenuta da un'API di sistema. Nel tuo script devi prima ottenere la chiave facendo le stesse chiamate che fa il browser e poi esportarla insieme al file, in modo che potrai decriptarlo in seguito sulla tua macchina e recifrarli con la tua chiave.
 
Copiare solo il file sqlite non basta, i valori dei cookie in browser come Firefox e Chrome sono cifrati con la master key, che viene ottenuta da un'API di sistema. Nel tuo script devi prima ottenere la chiave facendo le stesse chiamate che fa il browser e poi esportarla insieme al file, in modo che potrai decriptarlo in seguito sulla tua macchina e recifrarli con la tua chiave.
Come posso ottenere quella chiave? Intendo, come posso esportala dal browser?
 
Come posso ottenere quella chiave? Intendo, come posso esportala dal browser?

Il meccanismo è lo stesso delle password, la master key si ottiene tramite l'API CryptUnprotectData, con questa puoi cifrare e decifrare i dati con AES GCM. Dai un'occhiata a questo snippet:

Python:
def get_master_key():
    with open(os.environ['USERPROFILE'] + os.sep + r'AppData\Local\Google\Chrome\User Data\Local State', "r") as f:
        local_state = f.read()
        local_state = json.loads(local_state)
    master_key = base64.b64decode(local_state["os_crypt"]["encrypted_key"])
    master_key = master_key[5:]  # removing DPAPI
    master_key = win32crypt.CryptUnprotectData(master_key, None, None, None, 0)[1]
    return master_key

Fonte
 
Il meccanismo è lo stesso delle password, la master key si ottiene tramite l'API CryptUnprotectData, con questa puoi cifrare e decifrare i dati con AES GCM. Dai un'occhiata a questo snippet:

Python:
def get_master_key():
    with open(os.environ['USERPROFILE'] + os.sep + r'AppData\Local\Google\Chrome\User Data\Local State', "r") as f:
        local_state = f.read()
        local_state = json.loads(local_state)
    master_key = base64.b64decode(local_state["os_crypt"]["encrypted_key"])
    master_key = master_key[5:]  # removing DPAPI
    master_key = win32crypt.CryptUnprotectData(master_key, None, None, None, 0)[1]
    return master_key

Fonte
ok, funziona tutto, dunque ultima cosa... come uso questa chiave per rendere utilizzabili quei file?
immagino debba usarla per decrittare i file e usare la mia per crittarli di nuovo, ma come?