pfSense CE 2.9.0-DEVELOPMENT - उच्च - रिमोट - फ़ाइल लेखन - CP फ़ाइल प्रबंधक
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-.. के बाद शेष ../ अभी भी / तक पहुँच जाता है।
| ID | अभी तक कोई 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) |
| प्रमाणीकरण | page-services-captiveportal-filemanager के साथ WebGUI सत्र |
| लाइसेंस | GNU Affero GPL v3.0 |
| लैब | केवल 127.0.0.1 |
मैंने सार्वजनिक मास्टर 9363ac5 को पिन किया। लैब पिन किए गए सिंक का एक PHP गैजेट है, जिसमें 127.0.0.1:19000 पर लूपबैक HTTP है।
श्रृंखला राइट-अप: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| विधि | सिंक | विशेषाधिकार |
|---|---|---|
| POST services_captiveportal_filemanager.php फ़ाइल नाम | file_put_contents cpelements/{$data['name']} | अखंडता: लैब-प्रमाणित: नाम captiveportal-../../../../../oracle/... ने प्रीफ़िक्स को छोड़ दिया और cpelements के बाहर लिखा। रूट PHP राइट इस प्लेटफ़ॉर्म पर होस्ट RCE है। |
| वही शेष | वही सिंक | पुनरावलोकन: अनुमानित: config.xml या www PHP को अधिलेखित करें। |
| वही शेष | वही सिंक | उपलब्धता: अनुमानित: महत्वपूर्ण फ़ाइलों को अधिलेखित करें। |
आवश्यक: page-services-captiveportal-filemanager। POST पर CSRF-magic, जब तक अन्यथा न कहा गया हो। WebGUI PHP-FPM रूट है।
आवश्यक: page-services-captiveportal-filemanager। POST पर CSRF-magic, जब तक अन्यथा न कहा गया हो। WebGUI PHP-FPM रूट है। POST पर CSRF-magic, जब तक अन्यथा न कहा गया हो। WebGUI PHP-FPM रूट है।
बिना सबस्ट्रिंग वाला नाम प्रीफ़िक्स किया जाता है और उस तरह से बाहर नहीं निकल सकता। पोर्टल जेल के अंदर प्रलेखित 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 गैजेट। रन के बाद स्टैक टूट जाता है।
अंतिम पंक्ति:
SUCCESS PFSENSE-CP-FILEMANAGER-WRITE control-prefixed=yes prefix-no-escape=yes trigger-outside=yes PFSENSE-CP-FILEMANAGER-WRITE-WITNESS
अपलोड नाम पर basename() लगाएँ। हमेशा प्रीफ़िक्स करें। .. को अस्वीकार करें।
9363ac5b8651a1c7a333180425ce7719070f95f9