[Contribution] Adobe : injection de code JavaScript – XSS

08
déc.
2014
  • Google Plus
  • LinkedIn
  • Viadeo
Posted by: Yann C.  /   Category: Actualités & News / Contributions / XSS   /   Aucun commentaire

Un sous domaine de adobe.com présente une vulnérabilité d’injection de code JavaScript réfléchi (XSS Reflected) lors du processus d’obtention du plugin Flash qui n’est plus à présenter.

Depuis maintenant plusieurs mois/années, le plugin Flash Player de Adobe charge un démon sur les systèmes Windows qui s’exécute au lancement de la machine, et vérifie si la version du player actuellement installée est bien à jour.

La raison? Un très grand nombre de vulnérabilités et d’attaques se propagent par le biais des plugins périmés dans les navigateurs (PDF, Flash, Java, etc).

Il est donc particulièrement intéressant pour un assaillant de réussir à faire installer un « faux » plugin ou un plugin volontairement obsolète comportant une brèche, à ses victimes. Quoi de mieux que d’inciter la victime à « mettre à jour son plugin Flash » avec une backdoor directement depuis le site officiel d’Adobe ? C’est précisément ce que la vulnérabilité XSS détaillée ci-après permet de réaliser, en contrôlant et modifiant à volonté le contexte du navigateur de la victime.

Lorsqu’une mise à jour de Flash est requise, le petit assistant graphique sous Windows procède à l’installation. Une fois l’installation terminée, il ouvre d’emblée une fenêtre dans votre navigateur par défaut vers un sous-domaine de adobe.com. La page chargée est vouée à vérifier que le plugin fraîchement mis à jour est bien la dernière version.

L’installeur transmet des paramètres à cette page de vérification, notamment le « code de retour » de la mise à jour qui s’est réalisée. Ce code est directement injecté dans des scripts de la page sans être correctement validé et nettoyé.

Il est donc possible de forger son propre code JavaScript qui sera directement interprété dans la page :

https://get3.adobe.com/fr/flashplayer/completion/aih/?exitcode=1337&re=7331;alert(/Reflected XSS - Yann CAM @ASAfety/);&type=update&appid=200

Démonstration de l’injection :

RXSS dans un sous-domaine d'adobe.com

RXSS dans un sous-domaine d’adobe.com

La manipulation du contexte du navigateur donne un accès au cookie de la session :

RXSS et obtention du cookie de la page

RXSS et obtention du cookie de la page

 

La valeur « re » du paramètre GET est directement utilisée pour généré un code JavaScript dans la page, ainsi l’injection doit être syntaxiquement valide pour s’intercaler dans ce code :

Injection au niveau du code JavaScript de la page

Injection au niveau du code JavaScript de la page

Les équipes en charge du maintient du portail adobe.com et de ses sous-domaines ont été alertées pour combler la brèche.

Hi Yann,

Thank you very much for the report.  We are looking into it now, and will let you know if we have any questions. In the meantime, we ask that you do not publicly disclose this potential issue, in order to protect Adobe’s customers.  This has been assigned the Adobe tracking number 2985.

Please note: We add researchers to our Security Acknowledgments page (http://helpx.adobe.com/security/acknowledgements.html) once we have verified, reproduced, as well as fixed the submitted issue.

If your issue satisfies this criteria, we will email you a confirmation of your acknowledgement once the issue is fixed.

We appreciate your discretion and cooperation. Please let us know if you have any questions.

Thank you again,

Adobe Product Security Incident Response Team

Suite à de multiple échanges, la brèche a pu être comblée. La contribution a été placée sur la page des « Acknowledgement » :

Adobe Acknowledgement page

Adobe Acknowledgement page

Je salue l’équipe d’Adobe pour leur amabilité, leur intervention et leur gratitude.

Ressources :

  • Google Plus
  • LinkedIn
  • Viadeo
Author Avatar

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.