[Contribution] Java.com : vulnérabilités RXSS et DOM-XSS

logo-java

Récemment, un consultant de SYNETIS a pu déceler deux vulnérabilités relativement critiques au sein du domaine principal “www.java.com”.

Ces vulnérabilités d’injection de code JavaScript (Reflected XSS et DOM-Based XSS) auraient permis à un assaillant de modifier le contexte de navigation des visiteurs, capturer les données d’identification tels les cookies ou encore modifier les liens de téléchargement de logiciels mis à disposition sur java.com.

A l’heure d’aujourd’hui, un des principaux vecteurs d’attaque est l’utilisation de faux-plugins que les victimes installent, notamment dans leurs navigateurs (Java, Flash, PDF…). Ces faux-plugins et faux-logiciels sont généralement injectés via des sites web aux apparences de ceux légitimes.

Imaginez qu’au travers de ces vulnérabilités identifiées sur java.com, il aurait été possible de modifier les ressources à télécharger directement au travers des pages du site officiel.

RXSS Java.com
RXSS Java.com

Cette injection affectait l’ensemble des templates de langues du site.

Le site de java.com propose également aux visiteurs une documentation riche et complète. Celle-ci peut être imprimée en cliquant sur l’icône dédié, ce qui amène l’utilisateur à une version allégée de la page avant impression (sans les images).

C’est précisément cette fonctionnalité “printFriendly” qui était exposée à une vulnérabilité de type DOM-XSS, via le code JavaScript suivant :

<script type='text/javascript'>document.write(document.location.href.split('?')[0]);</script>

L’exploitation de cette DOM-XSS se faisait en forgeant une URL spécifique avec les contraintes suivantes :

  • l’injection devait se positionner avant le “?” du paramètre GET “?printFriendly=true”
  • l’injection ne devait pas altérer le nom du fichier “uninstall_needolder.xml”, cible de la requête
  • l’injection devait tout de même s’injecter dans le DOM : utilisation du vecteur %0a%0d (\r\n)
DOM-XSS Java.com
DOM-XSS Java.com

Suite à plusieurs échanges avec les équipes d’Oracle / Java pour corriger au mieux ces deux vecteurs d’attaques, ceux-ci ont finalement été sécurisés et le contributeur de SYNETIS a pu être cité sur le dernier Oracle Critical Patch Update Advisory – January 2015.

Dans le cadre de leurs activités quotidiennes, les consultants de SYNETIS peuvent être amenés à déceler des vulnérabilités aussi bien :

  • Au travers de leurs missions d’audit des SI de nos clients ;
  • Au sein des produits des éditeurs partenaires, avec la volonté d’améliorer constamment la sécurité des solutions proposées aux clients ;
  • Sur des projets communautaires, notamment opensource, tels ceux dont nous vous relayions les informations ;
  • Sur des sites internationaux de grande renommée, afin d’apporter une petite pierre à l’édifice de la sécurité globale de l’Internet.

Dès que des vulnérabilités sont détectées, des mesures de préventions, de sensibilisation et de corrections sont proposées par nos consultants aux équipes techniques, communautaires ou de support pour combler les brèches au mieux.

Pour plus d’information quant à l’analyse de vulnérabilités, l’audit de système (boite-blanche, boite-noire) et l’évaluation globale de la sécurité de votre SI, n’hésitez pas à nous contacter.

Sources & ressources :