Session Fixation — Fixation de session

Session Auth

Principe

L'attaquant impose un identifiant de session connu de lui à la victime (via URL, cookie injecté ou paramètre) avant qu'elle ne s'authentifie. Si l'application ne régénère pas l'ID de session au moment du login, l'attaquant réutilise ensuite ce même ID désormais authentifié.

Déroulé de l'attaque

1. L attaquant obtient un SESSIONID valide non authentifié
   GET /login -> Set-Cookie: PHPSESSID=ATTACKER_KNOWN
2. Il force la victime à l utiliser :
   http://target/login?PHPSESSID=ATTACKER_KNOWN
3. La victime se connecte avec cet ID
4. L attaquant rejoue PHPSESSID=ATTACKER_KNOWN -> session authentifiée

Défenses

// Régénérer l ID de session au moment du login (clé)
session_regenerate_id(true);  // PHP
request.session.regenerate()  // Express / autres

// + cookies HttpOnly/Secure/SameSite, ne jamais accepter
// un ID de session via paramètre d URL