1. Introducere
Session Fixation este o tehnică care permite hackerilor să deturneze sesiunea unui utilizator. Această tehnică profită de faptul că serverul nu modifică valoarea ID-ului de sesiune de fiecare dată când utilizatorul se conectează, ci folosește un ID de sesiune preexistent. Procesul de atac include obținerea unui ID de sesiune valid (eventual prin accesarea site-ului web ), apoi găsirea unei modalități prin care victima să se conecteze la site-ul web cu acest ID de sesiune și, în sfârșit, când victima se conectează cu succes. , hackerul va naviga site-ul cu contul său. Scenariul specific este următorul:
Mallory găsește un site web, cum ar fi http://unsafe.example.com, care acceptă orice ID de sesiune din cerere fără autentificare.
Mallory îi va trimite Alicei un e-mail, care conține linkul http://unsafe.example.com/?SID=1234.
Alice accesează http://unsafe.example.com/?SID=1234. Apoi conectați-vă la site.
Mallory merge pur și simplu la http://unsafe.example.com/?SID=1234 și folosește site-ul web cu contul lui Alice.
Mallory poate folosi următoarele metode pentru a seta cookie-uri pentru Alice:
Includeți un script pentru a seta cookie-uri
Trimiteți pachetul de răspuns HTTP cu valoarea cookie-ului Mallory. Trimiteți pachetul de răspuns HTTP cu valoarea cookie-ului Mallory
Utilizați metaetichete HTML:

2. Exemple
Exemplul 1 – Scriptare pe partea clientului
Similar cu scenariul menționat mai sus, însă, în acest caz, ID-ul sesiunii nu este transmis în URL, ci în cookie. Pentru a edita valoarea ID-ului de sesiune din cookie-ul victimei, hackerul va introduce o bucată de JavaScript:
http://website.kom/document.cookie=”sessionid=abcd”;
Exemplul 2 - etichetă
Asemănător cu scripting-ul pe partea clientului, dar de data aceasta hackerul va introduce etichete suplimentare:
http://website.kon/
Exemplul 3 – Răspuns antet HTTP
Inserarea ID-ului de sesiune se poate face și prin interceptarea pachetelor schimbate între client și aplicația Web, apoi inserând câmpul Set-Cookie în antet.
![Web12: Tehnica de hacking pentru fixarea sesiunii Web12: Tehnica de hacking pentru fixarea sesiunii]()
3. Cum să previi
Cauza acestei erori este că serverul nu regenerează ID-ul de sesiune după fiecare conectare reușită. Prin urmare, remedierea acestei erori nu este dificilă, trebuie doar să schimbăm valoarea ID-ului sesiunii și gata. În PHP, folosim funcția session_regenerate_id() pentru a regenera sesiunea.