[Contribution] eBay : CSS injection & XSS potentielle

20
déc.
2014
  • Google Plus
  • LinkedIn
  • Viadeo
Posted by: Yann C.  /   Category: Contributions / Vulnérabilités, exploits et PoC / XSS   /   Pas de commentaire

Un sous domaine de ebay.com présente une vulnérabilité d’injection de code CSS réfléchi (CSS Reflected) et par conséquent une XSS potentielle.

Une vulnérabilité d’injection de code réfléchi au sein d’une balise xHTML « input » de type « hidden » a été décelée au sein du sous-domaine « ocsnext.ebay.com ». Il est possible de manipuler les attributs de la balise « input » afin de compromettre le contexte de la page et d’y injecter potentiellement du code JavaScript.

L’injection portait sur le paramètre « query » et s’illustrait de la sorte :

eBay CSS injection PoC

eBay CSS injection PoC

L’URL d’illustration du PoC était la suivante :

http://ocsnext.ebay.com/ocs/cusr?query=x' style='background-image:url('http:/%26%23x0D%3B/www.asafety.fr/images/logo.png')&domain=TechnicalIssues&from=404_error

Dans le cadre de l’exemple ci-dessus, l’injection de la chaîne « http:// » était filtrée au niveau de la page, tout comme les chevrons d’ouverture/fermeture de balise « < » et « > ». Pour bypasser le filtre de l’injection de la chaîne « http:// », notamment les deux « // », il était nécessaire d’y incorporer le vecteur « %26%23x0D%3B » qui se traduisait par un espace nul « http:/%26%23x0D%3B/ » et une interprétation correcte au niveau du code source.

<input type='hidden' name='query' value='[INJECTION]' />

La difficulté de l’injection réside dans le fait que le champ « input » vulnérable était caché (« type=hidden« ). Les navigateurs actuels, IE et web-kits, ne permettent pas de déclencher des événements sur ces types de balises cachées. Oublier les « onmouseover », « onmouseout », « onfocus / autofocus », « onkeyup » et dérivés… De même, redéfinir le type de la balise pour tenter de la rendre visible n’est hélas pas fonctionnel :

<input type='hidden' type='text' [...] />

Transformer une injection CSS en injection JavaScript (XSS) sur des champs cachés est une opération délicate, particulièrement avec les protections actuelles des navigateurs. Il existe néanmoins plusieurs méthodes affectant certains types de navigateurs et versions, d’où le caractère critique des CSS injection via les attributs « style ».

Les équipes de sécurité eBay ont été alertées de ce vecteur d’attaque. La vulnérabilité a été confirmée, validée puis corrigée suite à plusieurs échanges via le portail de messagerie sécurisé d’eBay :

Échanges avec les équipes sécurité eBay

Échanges avec les équipes sécurité eBay

Après confirmation de la correction, la contribution a été renseignée sur la « Acknowledgement page » d’eBay.

Acknowledgement page eBay

Acknowledgement page eBay

Je remercie les équipes d’eBay pour leur amabilité, leur disponibilité et leur gratitude.

Sources & ressources :

  • Google Plus
  • LinkedIn
  • Viadeo
Yann C.

About the Author : Yann C.

Consultant en sécurité informatique et s’exerçant dans ce domaine depuis le début des années 2000 en autodidacte par passion, plaisir et perspectives, il maintient le portail ASafety pour présenter des articles, des projets personnels, des recherches et développements, ainsi que des « advisory » de vulnérabilités décelées notamment au cours de pentest.