pfSense CE 2.9.0-DEVELOPMENT - عالية - عن بُعد - كتابة ملف - CP file manager
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-cp-filemanager-write
الفئة: كتابة ملف الوصول: عن بُعد
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
اسم الرفع ليس basename(). الاسم الذي يحتوي بالفعل على captiveportal- يتخطى البادئة. file_put_contents("{$g['captiveportal_element_path']}/{$data['name']}") مع cpelements = /var/db/cpelements. ما تبقى من ../ بعد captiveportal-.. لا يزال يتسلل إلى /.
| المعرّف | لا يوجد CVE بعد |
| الفئة | كتابة ملف |
| الوصول | عن بُعد (WebGUI موثّق ما لم يُذكر خلاف ذلك) |
| CWE | CWE-22 |
| CVSS | مرتفع: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| المنتج | pfSense CE |
| المتأثر | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| المصادقة | جلسة WebGUI مع page-services-captiveportal-filemanager |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
ثبّتُّ الفرع العام الرئيسي 9363ac5. المختبر عبارة عن أداة PHP (gadget) للنقاط المثبّتة، عبر HTTP على واجهة الاسترجاع 127.0.0.1:19000.
مقال السلسلة: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| الطريقة | النقطة | الصلاحية |
|---|---|---|
| POST services_captiveportal_filemanager.php اسم الملف | file_put_contents cpelements/{$data['name']} | السلامة: مُثبت مختبريًا: الاسم captiveportal-../../../../../oracle/... تخطى البادئة وكتب خارج cpelements. كتابة PHP بصلاحية root تعني تنفيذًا عن بُعد على المضيف في هذه المنصة. |
| نفس البقايا | نفس النقطة | الاستطلاع: مُستنتج: الكتابة فوق config.xml أو www PHP. |
| نفس البقايا | نفس النقطة | التوافر: مُستنتج: الكتابة فوق ملفات حرجة. |
يتطلب: page-services-captiveportal-filemanager. حماية CSRF على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحية root.
يتطلب: page-services-captiveportal-filemanager. حماية CSRF على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحية root. حماية CSRF على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحية root.
الاسم بدون السلسلة الفرعية يُضاف إليه بادئة ولا يمكنه الإفلات بهذه الطريقة. PHP الموثّق داخل حاوية البوابة هو ميزة مختلفة.
لا يوجد Diagnostics: Command ما لم تُمنح تلك الصفحة أيضًا.
cd lab
./run.sh
واجهة الاسترجاع 127.0.0.1:19000. مشروع Compose pfsense-cp-filemanager-write. الشاهد PFSENSE-CP-FILEMANAGER-WRITE-WITNESS. واجهة الاسترجاع فقط: 127.0.0.1:19000. مشروع Compose pfsense-cp-filemanager-write. الشاهد PFSENSE-CP-FILEMANAGER-WRITE-WITNESS. أداة PHP (gadget) للأسطر المثبّتة. تُفكّك الحزمة بعد التشغيل.
السطر الأخير:
SUCCESS PFSENSE-CP-FILEMANAGER-WRITE control-prefixed=yes prefix-no-escape=yes trigger-outside=yes PFSENSE-CP-FILEMANAGER-WRITE-WITNESS
استخدم basename() على اسم الرفع. أضف البادئة دائمًا. ارفض .. .
9363ac5b8651a1c7a333180425ce7719070f95f9