
pfSense CE 2.9.0-DEVELOPMENT - عالية - عن بُعد - RCE - PPPoE mpd.secret bang
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-pppoe-secret-bang
الفئة: تنفيذ تعليمات عن بُعد (RCE) الوصول: عن بُعد
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
تسمح مجموعة محارف اسم المستخدم بـ CR/LF. كلمة المرور ! strip (#10275) تقوم بـ ltrim لعلامة ! البادئة من كلمة المرور فقط. يشغّل mpd علامة ! كمساعد كلمة مرور خارجي بصلاحيات root. طلب POST المباشر يحتفظ بالأسطر الجديدة؛ بينما يزيلها حقل type=text في المتصفح.
| المعرّف | لا يوجد CVE بعد |
| الفئة | تنفيذ تعليمات عن بُعد (RCE) |
| الوصول | عن بُعد (WebGUI موثّق ما لم يُذكر خلاف ذلك) |
| CWE | CWE-78 |
| 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-pppoeserver-edit |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
ثبّتُّ الفرع العام الرئيسي 9363ac5. المختبر عبارة عن أداة PHP (gadget) للنقطة المثبّتة، مع HTTP عبر الواجهة الراجعة على 127.0.0.1:18980.
مقال السلسلة: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| الطريقة | نقطة الوصول (Sink) | الصلاحية |
|---|---|---|
| POST إلى services_pppoe_edit.php باسم مستخدم يحتوي CR/LF | vpn_pppoe_updatesecret mpd.secret ! helper | السلامة (Integrity): مُثبت مختبريًا: سطر جديد في اسم المستخدم مع سطر ! helper؛ شغّل PAP/CHAP التجريبي المساعد وكتب الشاهد. كلمة المرور ! رفضتها الواجهة الرسومية. |
| نفس البقايا | نفس نقطة الوصول | الاستطلاع (Recon): مُستنتج: مخرجات المساعد (stdout) غير مستخدمة. |
| نفس البقايا | نفس نقطة الوصول | التوافر (Availability): لا شيء مُبيّن. |
يتطلب: page-services-pppoeserver-edit. حماية CSRF-magic على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحيات root.
يتطلب: page-services-pppoeserver-edit. حماية CSRF-magic على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحيات root. حماية CSRF-magic على POST ما لم يُذكر خلاف ذلك. WebGUI PHP-FPM يعمل بصلاحيات root.
كلمة المرور ! في الواجهة الرسومية مع ltrim. مجموعة محارف اسم مستخدم L2TP. إزالة الأسطر الجديدة في المتصفح.
لا يوجد Diagnostics: Command ما لم تُمنح تلك الصفحة أيضًا.
cd lab
./run.sh
الواجهة الراجعة 127.0.0.1:18980. مشروع Compose باسم pfsense-pppoe-secret-bang. الشاهد PFSENSE-PPPOE-SECRET-BANG-WITNESS. الواجهة الراجعة فقط: 127.0.0.1:18980. مشروع Compose باسم pfsense-pppoe-secret-bang. الشاهد PFSENSE-PPPOE-SECRET-BANG-WITNESS. أداة PHP للأسطر المثبّتة. تُفكّك الحزمة بعد التشغيل.
السطر الأخير:
SUCCESS PFSENSE-PPPOE-SECRET-BANG control-one-line=yes control-no-helper=yes password-bang-strip=yes trigger-helper=yes PFSENSE-PPPOE-SECRET-BANG-WITNESS
ارفض CR/LF في أسماء مستخدمي PPPoE. طبّق نفس مجموعة المحارف المستخدمة في L2TP.
9363ac5b8651a1c7a333180425ce7719070f95f9