# Description # L'attaque en détournement de session ( Session Hijacking ) consiste en l'exploitation du mécanisme de contrôle de la session web, qui est normalement géré par un jeton de session. Parce que la communication http utilise de nombreuses connexions TCP différentes, le serveur Web a besoin d'une méthode pour reconnaître les connexions de chaque utilisateur. La méthode la plus répandue utilise un jeton que le serveur Web envoie au navigateur client après une authentification réussie. Un jeton de session est normalement composé d'une chaîne de largeur variable et il peut être utilisé de différentes manières, comme dans l'URL, dans l'en-tête de la demande HTTP en tant que témoin, dans d'autres parties de l'en-tête de la requête HTTP, ou encore dans le corps de la demande HTTP. Le détournement de session compromet le jeton de session en volant ou en prédisant un jeton de session valide pour obtenir un accès non autorisé au serveur Web. Le jeton de session peut être compromis de façon différente; les attaques les plus courantes sont: * Jeton de session prévisible; * Session Sniffing; * Attaque côté client (XSS, code JavaScript malveillant, chevaux de Troie, etc); * Man-in-the-middle; * Man-in-the-browser # Exemples # ## Exemple 1 Sniffing ## Dans l'exemple l'attaquant utilise un sniffer pour capturer un jeton session valide appelé «Session ID », puis il utilise le jeton de session valide pour obtenir un accès non autorisé au serveur Web. //Figure 1. Manipulation du jeton de session et exécution de l'attaque en détournement de session .// ## Exemple 2 Cross Site Attack ## Un script peut compromettre le jeton de session à l'aide d'un code malveillant ou programme s'exécutant du côté client. L'exemple montre comment l'attaquant peut utiliser une attaque XSS pour voler le jeton de session. Si un attaquant envoie un lien à la victime avec le code JavaScript malveillant, lorsque la victime clique sur le lien, le code JavaScript s'exécute. L'exemple de la figure 3 utilise une attaque XSS pour montrer la valeur du cookie de la session en cours; en utilisant la même technique, il est possible de créer un code JavaScript spécifique qui enverra le cookie à l'attaquant. //Figure 2. L'injection de code.// ## Autres exemples ## Les attaques décrites dans les fiches suivantes permettent d'intercepter l'échange d'informations entre le client et le serveur: * [[man-in-the-middle]] * [[man-in-the-browser_attack]]