
Proof-of-Concept-Exploit für die reflektierte Cross-Site-Scripting (XSS)-Schwachstelle in Trimble TM4WEB <=22.2.0, der die Injektion über beliebige URL-Parameter im Endpunkt des externen Bill-Viewers demonstriert.
In Trimble TM4WEB <=22.2.0 ist der Endpunkt des externen Rechnungsbetrachters anfällig für reflektiertes Cross-Site-Scripting durch Injektion in einen beliebigen Parameter, der an die URL angefügt wird.
Schritt 1:
Die folgende Beispiel-URL löst die Schwachstelle aus und führt die JavaScript-Funktion alert() aus, die als Proof of Concept die Zahl 1 anzeigt. Diese Schwachstelle funktioniert auf jeder bisher vom Forscher beobachteten TM4WEB-Installation. Beispiel für eine schädliche URL mit einer nicht existierenden Website:
https://example-tm4web.com/trace/external_bill_viewer.msw?foo=bar"}%27);alert(1);<!--
Diese URL löst die folgende schädliche GET-Anfrage aus.
GET /trace/external_bill_viewer.msw?foo=bar%22}%27);alert(1);%3C!-- HTTP/1.1
Host: example-tm4web.com
Connection: close
Diese Anfrage nutzt einen beliebigen Parameter des verwundbaren Endpunkts external_bill_viewer.msw aus.
Der Angriff führt zu einer Injektion von gültigem JavaScript-Code in Zeile 84 der HTTP-Antwort, wie im folgenden Screenshot gezeigt:

Ein Beispiel für die Injektion ist unten mit der daraus resultierenden JavaScript-Ausführung des alert(1)-Payloads gezeigt: