
Attaque XSS sur Atlassian Jira via Server Side Request Forgery (SSRF).
SSRF & XSS
https://jira.you.com//plugins/servlet/oauth/users/icon-uri?consumerUri=http://www.google.co.uk
L'IconUriServlet du plugin OAuth Atlassian, de la version 1.3.0 avant la version 1.9.12 et de la version 2.0.0 avant la version 2.0.4, permet à des attaquants distants d'accéder au contenu de ressources réseau internes et/ou d'effectuer une attaque XSS via une falsification de requête côté serveur (SSRF).
Selon Atlassian Jira, les versions suivantes sont vulnérables :
Dans une attaque de falsification de requête côté serveur (SSRF), l'attaquant peut abuser des fonctionnalités du serveur pour lire ou mettre à jour des ressources internes. L'attaquant peut fournir ou modifier une URL que le code exécuté sur le serveur lira ou à laquelle il enverra des données, et en sélectionnant soigneusement les URL, l'attaquant peut être en mesure de lire la configuration du serveur, comme les métadonnées AWS, de se connecter à des services internes tels que des bases de données HTTP ou d'effectuer des requêtes POST vers des services internes qui ne sont pas destinés à être exposés.
L'application cible peut disposer de fonctionnalités permettant d'importer des données depuis une URL, de publier des données vers une URL ou de lire des données depuis une URL, fonctionnalités qui peuvent être altérées. L'attaquant modifie les appels à cette fonctionnalité en fournissant une URL complètement différente ou en manipulant la manière dont les URL sont construites (traversée de chemin, etc.).
Lorsque la requête manipulée parvient au serveur, le code côté serveur récupère l'URL manipulée et tente de lire des données depuis cette URL. En sélectionnant des URL cibles, l'attaquant peut être en mesure de lire des données depuis des services qui ne sont pas directement exposés sur Internet :
Métadonnées du serveur cloud - Les services cloud tels qu'AWS fournissent une interface REST sur http://169.254.169.254/latest/meta-data/ où des configurations importantes et parfois même des clés d'authentification peuvent être extraites
Interfaces HTTP de bases de données - Les bases de données NoSQL telles que MongoDB fournissent des interfaces REST sur des ports HTTP. Docker et Kubernetes - si les ports locaux sont exposés en interne, un attaquant peut créer / supprimer des pods et des conteneurs et récupérer d'autres secrets.
Si la base de données est censée n'être disponible qu'en interne, l'authentification peut être désactivée et l'attaquant peut extraire des données Interfaces REST internes
Fichiers - L'attaquant peut être en mesure de lire des fichiers en utilisant des URI file:// L'attaquant peut également utiliser cette fonctionnalité pour importer des données non fiables dans un code qui est censé ne lire que des données provenant de sources fiables, contournant ainsi la validation des entrées.