Fissazione della sessione

Fissazione della sessione

L'aggressore conosceva l'ID della sessione prima che tu effettuassi l'accesso.

Cos’è Fissazione della sessione?

La correzione e il dirottamento differiscono a seconda del momento in cui l'aggressore ottiene l'ID di sessione. Un dirottatore lo ruba dopo l'autenticazione. La correzione impianta un valore noto in precedenza e consente al proprio accesso di aggiornarlo. Attaccherai un ID anonimo in tempo reale in un collegamento, guarderai la vittima accedere e caricherai la sua dashboard con la stessa stringa. Il gestore legge const sid = req.cookies.sid || crypto.randomUUID() . La correzione conia incondizionatamente un nuovo ID a ogni transizione di autenticazione e privilegio, motivo per cui entropia e HttpOnly non lo chiudono.

Cosa imparerai in Fissazione della sessione

Fissazione della sessione — Fasi della formazione

  1. Il piano di Bob

    Bob non può rubare la password di Alice e non ne ha bisogno. Il suo piano è di darle un ID di sessione che già conosce, quindi lasciarle accedere, in modo che la sessione su cui si autentica sia quella che controlla. Per prima cosa ha bisogno di un ID di sessione da piantare. Apre lui stesso il portale Sundermark Logistics e questo portale legacy consegna al suo browser un ID di sessione anonimo e lo inserisce direttamente nella barra degli indirizzi come valore ?sid , esattamente come farebbe con qualsiasi visitatore.

  2. Un ID sessione valido da piantare

    Bob apre la finestra di controllo dei cookie del browser. Il portale gli ha già consegnato un ID di sessione, prima che abbia effettuato l'accesso o fatto qualsiasi cosa. È anonimo, ma è un valore reale che il server ha emesso e onorerà. Questo è l'ID esatto che pianterà su Alice.

  3. Trasformalo in un'arma

    Bob non deve costruire nulla. L'ID di sessione che il server gli ha fornito è già associato all'indirizzo come ?sid=SID-9F3A2B1C7D e il portale ha una stranezza legacy: copia quell' sid direttamente dall'URL nel cookie del visitatore. Quindi questo esatto collegamento è la trappola. Chiunque Bob lo invii avrà il suo ID di sessione inserito nel cookie nel momento in cui lo apre.

  4. Invia la trappola ad Alice

    Bob prende di mira Alice, una dipendente di cui desidera l'account sul portale. Apre la sua email e le scrive un messaggio travestito da avviso di accesso IT di routine, con lo stesso collegamento ID sessione nel corpo. Tutto ciò di cui ha bisogno è che lei lo apra e acceda.

  5. Un avviso di accesso di routine

    Fuori orario, Alice riceve un'e-mail che suona come un servizio di pulizia IT: conferma l'accesso al portale prima della fine della giornata. Il collegamento punta al portale reale, quindi non salta fuori nulla.

  6. Un clic consegna il cookie

    Alice fa clic sul collegamento. Apre la pagina di accesso al portale reale, esattamente come previsto. Ciò che non può vedere: il portale ha appena copiato l' sid dal collegamento nel suo barattolo di cookie. Il suo browser ora contiene l'ID di sessione di Bob.

  7. Alice accede

    Alice accede con le sue credenziali Sundermark, proprio come richiesto nell'avviso. Il portale la accoglie e la lascia sulla sua dashboard. Niente sembra sbagliato. Il suo account, i suoi dettagli, la sua sessione.

  8. L'ID che avrebbe dovuto cambiare

    Ecco il difetto, reso visibile. Un accesso sicuro conia un nuovo ID di sessione nel momento in cui ti autentichi, quindi l'ID che hai portato con te viene gettato via. L'identità di Alice non è cambiata. Il cookie sul suo dashboard autenticato è byte per byte il valore inserito nel collegamento inviato via email, il valore inserito da Bob.

  9. Bob aggiorna il suo account

    Bob ha ancora la pagina di accesso aperta nel suo browser, quella che ha caricato con il suo ID di sessione inserito. Un minuto dopo che Alice ha effettuato l'accesso, lo aggiorna semplicemente. Il suo ID inserito è ora legato alla sua sessione autenticata, quindi il portale tratta la sua richiesta come se fosse la sua e lo rimanda direttamente alla sua dashboard. Nessuna password, nessun furto, nessun malware.

  10. Dimmi cosa è successo

    Prima che Alice passi da vittima a ingegnere, sii preciso riguardo all'attacco.

Copertura dei framework di sicurezza

OWASP Top 10

  • A07:2025 Authentication Failures
  • A07:2021 Identification and Authentication Failures

CWE

  • CWE-384 Session Fixation
  • CWE-613 Insufficient Session Expiration

MITRE ATT&CK

  • T1539 Steal Web Session Cookie

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security