
يمكن للمهاجم التلاعب ببارامترات رفع الملفات لتمكين اجتياز المسارات، وفي بعض الظروف يمكن أن يؤدي ذلك إلى رفع ملف ضار يمكن استخدامه لتنفيذ تعليمات برمجية عن بعد. يُوصى المستخدمون بالترقية إلى الإصدارات Struts 2.5.33 أو Struts 6.3.0.2 أو أحدث لإصلاح هذه المشكلة.
تم العثور على ثغرة أمنية خطيرة، تم تحديدها باسم CVE-2023-50164 (CVE: 9.8)، في Apache Struts، مما يسمح للمهاجمين بالتلاعب بمعاملات تحميل الملفات التي قد تؤدي إلى اجتياز المسار غير المصرح به وتنفيذ التعليمات البرمجية عن بُعد (RCE).
تم تطوير تطبيق اختبار بسيط لتحليل الثغرة CVE
أولاً، قم ببناء التطبيق باستخدام أمر docker build:
docker build -t exploitable -f DOCKERFILE .
ثم، قم بتشغيل التطبيق باستخدام أمر docker run:
docker run -p 8080:8080 exploitable
في هذه الحالة، يمكنك الوصول إلى التطبيق على المنفذ 8080
يمكنك نشره إلى Tomcat أو أي servlet آخر، أو تشغيله بواسطة mvn jetty:run. في هذه الحالة، يمكنك الوصول إلى التطبيق على المنفذ 9999. يعمل سكربت الاستغلال فقط في الحالات التي يتم فيها نشر التطبيق على Tomcat لأن مسار الاستغلال هو تحميل WAR webshell. ومع ذلك، يمكن أن تعمل العديد من مسارات الاستغلال الأخرى في حالة نفس الثغرة بناءً على التقنيات المستخدمة والظروف الأخرى.
تثبيت حزم PIP:
pip install requests requests_toolbelt
ثم، يمكنك تغيير المسار حسب عنوان URL للتطبيق وتشغيل الأمر التالي:
python exploit.py --url http://localhost:8080/upload.action
يوصى بتشغيل التطبيق والاستغلال على نظام Windows. قد لا يعمل الاستغلال على الأنظمة المستندة إلى *nix في بعض الأحيان.
تم إنشاء هذا السكربت الاستغلالي لأغراض البحث. ليس المقصود استخدامه في أي أنشطة ضارة أو غير مصرح بها.