Problembeschreibung
Fehlende Eingabevalidierung und Ausgabecodierung ermöglicht die Einschleusung von JavaScript, was zu reflektiertem siteübergreifendem Skripting (Reflected Cross Site Scripting, XSS) führt.
Das reflektierte siteübergreifende Skripting kann verwendet werden, um beliebiges JavaScript in die authentifizierte Microsoft System Center 2016-Seite einzuschleusen. Die nachfolgende GET-Anforderung kann abgefangen und die SpaceID geändert werden, um beliebige Zeichenfolgen in den linken Navigationsbereich der Webkonsole einzuschleusen.
GET/OperationsManager/InternalPages/NavigationTree.aspx?SpaceId=1002&ViewId=Favorites_Overview HTTP/1.1
Hier ist ein Beispiel für eine beliebige Zeichenfolge:
abc%3E%3C","00000000-0000-0000-0000-000000000000");alert(1);//%3E
Ein bösartiges JavaScript kann, sobald es einmal eingeschleust ist, das aktuelle Verhalten der Seite ändern und Folgendes auslösen: Trojaner, Erzwingen böswilliger Umleitungen, Spoofing von Inhalten, Keylogger, Datenlecks, Lecks bei VIEWSTATE- und Validator-Token (Unterdrückung von Anti-CSRF-Kontrollen) usw.
Der Angriff besteht aus den folgenden Schritten
-
Ein Angreifer erstellt eine bestimmte authentifizierte GET-Anforderung des System Center mit XSS-Nutzlast und trickst entweder das Opfer aus, auf die spezielle URL zuzugreifen, oder trickst den Benutzer aus, auf einen Phishing-Versuch zuzugreifen, der die spezifische Anforderung auslöst.
-
Das authentifizierte Opfer lädt die Homepage oder lädt sie neu.
Hinweis: Der Angriff ist auf jeden viewID-Wert und jede Anforderung mit dem SpaceID-Abfragezeichenfolge-Paremeter anwendbar.
Testfall
Erwartetes Ergebnis: Fehler wegen ungültiger SpaceID oder leerer Bereich und keine Ausführung von zufälligem JavaScript
Ergebnis: Beliebiges JavaScript ausgeführt.
Fehlerbehebung
Implementieren Sie eine strenge Eingabevalidierung. Als SpaceID werden nur ganze Zahlen akzeptiert, sodass die Datentypprüfung für die Eingabe ausreicht, um die Sicherheitsanfälligkeit zu beheben.
Wir haben eine Prüfung hinzugefügt, um sicherzustellen, dass die SpaceID nur einer der unterstützten Werte ist (1001 und 1002), ansonsten sind die Daten in der Struktur leer.
Informationsquellen
Siehe den Sicherheitsleitfaden zu CVE-2020-1331.
Sicherheitsklassifizierung
Reflektiertes siteübergreifendes Skripting, Spoofing von Inhalten