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 :
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 :
Après confirmation de la correction, la contribution a été renseignée sur la « Acknowledgement page » d’eBay.
Je remercie les équipes d’eBay pour leur amabilité, leur disponibilité et leur gratitude.
Sources & ressources :