
Atlassian Jira XSS-Angriff über Server Side Request Forgery (SSRF).
SSRF & XSS
https://jira.you.com//plugins/servlet/oauth/users/icon-uri?consumerUri=http://www.google.co.uk
Der IconUriServlet des Atlassian OAuth-Plugins von Version 1.3.0 vor Version 1.9.12 und von Version 2.0.0 vor Version 2.0.4 ermöglicht es entfernten Angreifern, auf den Inhalt interner Netzwerkressourcen zuzugreifen und/oder über Server-Side Request Forgery (SSRF) einen XSS-Angriff durchzuführen.
Laut Atlassian Jira sind die folgenden Versionen verwundbar:
Bei einem Server-Side-Request-Forgery-Angriff (SSRF) kann der Angreifer Funktionen auf dem Server missbrauchen, um interne Ressourcen zu lesen oder zu aktualisieren. Der Angreifer kann eine URL bereitstellen oder modifizieren, die der auf dem Server ausgeführte Code liest oder an die er Daten sendet. Durch sorgfältige Auswahl der URLs kann der Angreifer möglicherweise Serverkonfigurationen wie AWS-Metadaten lesen, eine Verbindung zu internen Diensten wie HTTP-fähigen Datenbanken herstellen oder POST-Anfragen an interne Dienste senden, die nicht für die Offenlegung bestimmt sind.
Die Zielanwendung verfügt möglicherweise über Funktionen zum Importieren von Daten von einer URL, zum Veröffentlichen von Daten an eine URL oder zum anderweitigen Lesen von Daten von einer URL, die manipuliert werden kann. Der Angreifer verändert die Aufrufe dieser Funktionalität, indem er eine vollständig andere URL bereitstellt oder die Art und Weise manipuliert, wie URLs aufgebaut werden (Pfad-Traversal usw.).
Wenn die manipulierte Anfrage den Server erreicht, übernimmt der serverseitige Code die manipulierte URL und versucht, Daten von der manipulierten URL zu lesen. Durch die Auswahl von Ziel-URLs kann der Angreifer möglicherweise Daten von Diensten lesen, die nicht direkt im Internet exponiert sind:
Cloud-Server-Metadaten - Cloud-Dienste wie AWS stellen eine REST-Schnittstelle unter http://169.254.169.254/latest/meta-data/ bereit, über die wichtige Konfigurationen und manchmal sogar Authentifizierungsschlüssel extrahiert werden können.
Datenbank-HTTP-Schnittstellen - NoSQL-Datenbanken wie MongoDB stellen REST-Schnittstellen auf HTTP-Ports bereit. Docker und Kubernetes - wenn die lokalen Ports intern exponiert sind, kann ein Angreifer Pods & Container erstellen/löschen und andere Geheimnisse abrufen.
Wenn erwartet wird, dass die Datenbank nur intern verfügbar ist, ist die Authentifizierung möglicherweise deaktiviert und der Angreifer kann Daten extrahieren. Interne REST-Schnittstellen
Dateien - Der Angreifer kann möglicherweise Dateien mithilfe von file://-URIs lesen. Der Angreifer kann diese Funktionalität auch nutzen, um nicht vertrauenswürdige Daten in Code zu importieren, der nur Daten aus vertrauenswürdigen Quellen lesen soll, und auf diese Weise die Eingabevalidierung umgehen.