
تم تطوير هذا الاستغلال خصيصًا لمختبر Strutted في HackTheBox، بهدف استغلال الثغرة CVE-2023-50164 في Apache Struts 2. تسمح العيوب بـ path traversal من خلال خلل في معالجة معاملات رفع الملفات. تم إنشاء الاستغلال لغرض إظهار كيف يمكن للمهاجم تنفيذ رفع ملفات خبيثة والحصول على تنفيذ الأكواد عن بُعد (RCE).
تم تطوير هذا الاستغلال حصريًا للأغراض التعليمية داخل البيئة الخاضعة للتحكم في HackTheBox ولا ينبغي استخدامه على أنظمة حقيقية دون إذن صريح. استغلال الثغرات دون موافقة غير قانوني وغير أخلاقي.
الهدف من هذا الاستغلال هو إظهار كيف يمكن استغلال الخلل في Apache Struts 2، وتحديدًا في نقطة رفع الملفات، من أجل:
ترتبط الثغرة CVE-2023-50164 بالمعالجة غير الصحيحة لمعاملات رفع الملفات، مما يسمح للمهاجم بالتلاعب باسم الملف المُرسل لتنفيذ path traversal.
التلاعب بمعامل HTTP: يقوم الاستغلال بتعديل معاملات HTTP لتضمين أحرف اجتياز الدلائل (../)، مما يسمح برفع ملف خبيث في مجلد غير مصرح به.
إرسال الملف الخبيث: يرسل الاستغلال ملفًا خبيثًا باستخدام طريقة POST إلى نقطة النهاية /upload.action، مستغلًا خلل حساسية حالة الأحرف في معاملات HTTP.
تنفيذ الأكواد عن بُعد: يمكن للمهاجم إدراج أكواد خبيثة سيتم تنفيذها على الخادم بعد الرفع.
فيما يلي مثال على طلب HTTP يمكن استخدامه لاستغلال الثغرة:
POST /upload.action HTTP/1.1
Host: vulnerable-server.com
Content-Type: multipart/form-data; boundary=------------------------abcdef
--------------------------abcdef
Content-Disposition: form-data; name="Upload"; filename="img.png"
Content-Type: application/octet-stream
PNG
--------------------------abcdef
Content-Disposition: form-data;
Content-Type: application/octet-stream
../../shell.jsp
--------------------------abcdef--