Perché non si tratta di rubare abbastanza cookie da autenticarsi?

44

Ho provato ad esportare tutti i miei cookie tramite l'estensione "Modifica questo cookie" su una pagina che utilizza l'autenticazione dei cookie. Durante la disconnessione, ho provato ad inserire quei cookie sperando che sarei loggato, ma non è successo nulla.

Dopo la ricerca, sono venuto a sapere che i cookie inviati sono in forma crittografata. Ma la pagina non stava usando alcuna crittografia TLS. Mi sto perdendo qualcosa?
EDIT: ho provato a utilizzare gli stessi cookie mentre connesso i.e ha esportato tutti i cookie e importato in una finestra di navigazione in incognito ma non è successo nulla.
Inoltre, questo tipo di attacco non sembra funzionare sui siti più popolari come Google, Facebook, ecc. Quindi, come proteggono da tali attacchi?

    
posta Kartikey singh 29.01.2018 - 18:19
fonte

7 risposte

54

Tecnicamente, anche se i contenuti del cookie dovevano essere crittografati, se i cookie sono copiati correttamente nel nuovo browser e il nuovo browser invia le stesse intestazioni HTTP (stessa stringa di agente utente, il referrer è come previsto, il computer ha lo stesso IP indirizzo e tutte le altre intestazioni che il server potrebbe aver precedentemente memorizzato e confrontato con), il server teoricamente wouldn ' t essere in grado di distinguere tra il browser originale e il nuovo browser.

Suppongo che tu stia cercando di copiare i cookie da un sito che ti registra automaticamente ogni volta che apri il browser e non hai effettuato il logout.

Alcuni siti potrebbero utilizzare altri modi per rilevare se si tratta di un cookie rubato / sessione, ma è un perdere la battaglia perché tutti quelli possono ancora essere falsificati Es:

  • Verifica se l'indirizzo IP è cambiato
  • L'agente utente è lo stesso
  • Verifica se il referrer ha senso
  • Qualsiasi altra intestazione HTTP che il browser invia

Per rispondere alla tua domanda, dovresti essere in grado di farlo funzionare se hai a che fare con un sito di accesso automatico e non hai effettuato il logout. Assicurati che tutte le intestazioni HTTP che il tuo nuovo browser sta inviando siano le stesse , che l'indirizzo IP è lo stesso, il referrer è quello previsto, lo stesso agente utente.

Tieni presente che forse il servizio che stai utilizzando utilizza un secondo cookie che hai dimenticato di copiare e crea così un'anomalia che ti dà un calcio.

    
risposta data 29.01.2018 - 20:40
fonte
32

I contenuti di un cookie sono definiti dall'applicazione e ci sono tutti i modi per usarli. Ecco una breve lista di alcuni dei possibili motivi per cui il tuo sforzo è fallito.

  1. Il cookie è associato all'indirizzo IP, l'impronta digitale del dispositivo o altri dati non cookie non acquisiti.
  2. Il cookie originale contiene una scadenza e è passato.
  3. Il cookie è monouso, vale a dire che il server fa ruotare il valore con ogni richiesta / risposta e invalida qualsiasi valore del cookie che è già stato utilizzato.
  4. Il cookie è stato associato a una sessione che non esiste più sul server (potenzialmente perché si è disconnessi).
  5. Il cookie è associato a un elemento nascosto all'interno della pagina (ad esempio un token CSRF) e non hai acquisito o ricreato quel valore.
  6. Il server viene bilanciato in base al carico, con lo stato della sessione in proc e un meccanismo di stickiness della sessione temporaneo applicato dal servizio di bilanciamento del carico. Nella tua nuova sessione, al tuo cliente è stato assegnato un nodo diverso all'interno della farm in cui la sessione non esiste.
  7. Il server Web utilizza un motore di regole per rilevare attività sospette e il cookie di spoofing è stato presentato fuori sequenza o in un orario inatteso.
  8. I cookie andavano bene, ma hai incasinato qualche altro dettaglio, come l'intestazione del referrer.
risposta data 30.01.2018 - 03:53
fonte
31
  1. I cookie stessi potrebbero essere stati firmati o crittografati, non la connessione che li ha consegnati.
  2. Il server potrebbe aver rimosso la sessione dal suo database quando si è disconnessi.
risposta data 29.01.2018 - 18:26
fonte
8

Come accennato, quando hai effettuato il logout, il server ha invalidato il cookie che hai appena rubato, rendendolo inutile per provare a fingere di essere te stesso.

Quindi, se vuoi veramente provare a rubare i tuoi cookie per testare ciò che è necessario per rubare la tua sessione da questo particolare servizio web, dovrai esportare i cookie e importarli in un nuovo browser / modalità di navigazione in incognito senza registrazione nella scheda del browser originale.

Tuttavia, solo per notare, i cookie vengono spesso controllati rispetto a un gran numero di altri criteri. Possiamo controllare IP, user-agent, ecc link

Potremmo anche escogitare strategie ancora più intelligenti, come un sistema di aggiornamento continuo di token o fingerprinting del browser, per verificare che la persona in possesso di questo cookie sia la persona a cui abbiamo dato quel cookie, e che non sia stato t rubato. Pertanto, anche se "rubi" i cookie di autenticazione, potresti comunque non riuscire ad autenticarti con loro.

    
risposta data 29.01.2018 - 20:40
fonte
4

La sessione è stata invalidata sul server. I siti Web sicuri fanno questo per prevenire esattamente il tipo di attacco che stai descrivendo. Quando si esegue il logout, il server elimina la sessione dal proprio database in modo che anche se gli stessi cookie di sessione fossero stati utilizzati nuovamente, non verranno accettati dal server. Questo è il motivo per cui è importante disconnettersi correttamente dal sito web invece di chiudere il browser, anche se il browser non conserva i cookie.

Siti Web non sicuri possono lasciare la sessione in giro sul server in modo che anche dopo aver "disconnesso" (ovvero eliminato i cookie dal browser), gli stessi cookie di sessione possano essere ancora utilizzati in seguito.

Prova a ripetere l'esperimento, ma questa volta non effettuare il logout in anticipo. Accedi al sito web e poi elimina manualmente i cookie dal tuo browser. Se visiti nuovamente il sito Web senza i cookie, non sarai loggato. Ora ripristina i cookie e prova a visitare nuovamente il sito web e dovresti effettuare nuovamente l'accesso.

    
risposta data 30.01.2018 - 09:48
fonte
1

Per i siti semplici la copia dei cookie dovrebbe essere sufficiente. Più siti "sicuri" collegano la tua sessione come altri citati ad altri fattori come IP.

C'è anche la possibilità che ci sia del codice javascript che controlla altri valori persistenti come Local / Session Storage, IndexDB e così via. Prova a dare un'occhiata a loro. Sarebbe anche possibile che questa sia una singola applicazione del sito in cui tutti i dati vengono caricati tramite ajax e oAuth insieme a una forma di archiviazione persistente. Nessun cookie necessario poiché il segreto è memorizzato altrove.

    
risposta data 30.01.2018 - 23:05
fonte
0

In molti casi, rubando i cookie IS abbastanza per l'autenticazione, è probabile che tu abbia fatto qualcosa di sbagliato.

Nota, TLS / encryption non sono rilevanti qui. Nel momento in cui stai leggendo il cookie dall'intestazione, il traffico è già stato decodificato. Tutto ciò che Chrome ti mostra è già decodificato, la crittografia è completamente trasparente.

Per rispondere alla domanda. Gli schemi di autenticazione variano. A volte usano solo i cookie, nel qual caso il furto sarà sufficiente. A volte non usano affatto i cookie. A volte usano un mix di cookie e altri dati.

Ci sono infiniti schemi di cookie. Non esiste una risposta semplice per tutti loro.

    
risposta data 01.02.2018 - 08:27
fonte

Leggi altre domande sui tag