
Apache OpenMeetings 9.1.0 - उच्च - रिमोट - विशेषाधिकार अवशेष - पुराना /install विज़ार्ड दूसरा ADMIN सम्मिलित करता है
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-stale-install-admin
वर्ग: विशेषाधिकार अवशेष पहुँच: रिमोट
Apache OpenMeetings 9.1.0 (9773c59e) - Apache Software Foundation
InstallWizardPage isInstalled() के बाद नए अनुरोधों को रीडायरेक्ट करता है। पहले इंस्टॉल से पहले खोला गया Wicket पेज लाइव रहता है। उस स्टेल सत्र पर Finish चलाने से loadAll(cfg, true) निष्पादित होता है। ImportInitvalues.checkInstalled "no need to install" लॉग करता है और रिटर्न नहीं करता। दूसरा finish एक और ADMIN+SOAP उपयोगकर्ता सम्मिलित करता है।
| ID | अभी तक कोई CVE नहीं |
| वर्ग | विशेषाधिकार अवशेष |
| पहुँच | रिमोट (पहली सेटअप के दौरान अनप्रमाणित /install) |
| CWE | CWE-367, CWE-269 |
| CVSS | उच्च: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| उत्पाद | Apache OpenMeetings |
| प्रभावित | 9.1.0 (9773c59e1af327bf988018e661f456ae9997c29f) प्रथम-इंस्टॉल विंडो |
| प्रमाणीकरण | स्टेल विज़ार्ड सत्र पर कोई नहीं |
| लाइसेंस | GNU Affero GPL v3.0 |
| लैब | केवल 127.0.0.1:18159। आधिकारिक 9.1.0 tarball, अनइंस्टॉल, HTTP 5080। |
मैंने टैग 9.1.0 पिन किया, peel 9773c59e1af327bf988018e661f456ae9997c29f। अवशेष के लिए पहला इंस्टॉल पूरा होने से पहले खोला गया विज़ार्ड पेज आवश्यक है।
जब इंस्टेंस अभी तक इंस्टॉल नहीं हुआ हो, तब /openmeetings/install तक पहुँचें। उस JSESSIONID को रखें। ऑपरेटर द्वारा पहला इंस्टॉल पूरा करने की प्रतीक्षा करें। स्टेल पेज पर Finish POST करें।
| विधि | सिंक | विशेषाधिकार |
|---|---|---|
स्टेल POST विज़ार्ड Finish (wizard-form-buttons-finish) | ImportInitvalues.checkInstalled लॉग करता है और जारी रहता है (ImportInitvalues.java:607-612); loadInitUserAndGroup | अखंडता (लैब-प्रमाणित): दूसरा उपयोगकर्ता staleadm अधिकारों के साथ ADMIN, SOAP, LOGIN, DASHBOARD, ROOM। SOAP लॉगिन सफल रहा। उपयोगकर्ता सूची count=2। |
वही loadAll(cfg, true) | स्टेल फ़ॉर्म से persistence / SMTP / पथ | अखंडता (अनुमानित): हमलावर-नियंत्रित विज़ार्ड फ़ील्ड से persistence.xml और मेल सेटिंग्स को फिर से लिखें। SUCCESS के लिए आवश्यक नहीं। |
लैब-प्रमाणित बनाम अनुमानित: दूसरा ADMIN+SOAP लॉगिन लैब है। persistence.xml पुनर्लेखन loadAll से अनुमानित है।
आवश्यक: हमलावर ने isInstalled() से पहले /install प्राप्त किया। फिर ऑपरेटर ने इंस्टॉल पूरा किया। वही Wicket पेज id अभी भी POST किया गया। आधिकारिक docker इमेज पहले से इंस्टॉल है, इसलिए यह tarball प्रथम-बूट विंडो है (और कोई भी पुनःइंस्टॉल)।
| सतह | क्यों |
|---|---|
इंस्टॉल के बाद ताज़ा GET /install | कंस्ट्रक्टर /signin पर रीडायरेक्ट करता है (InstallWizardPage.java:31-34)। लैब: नया सत्र signin पर पहुँचा। |
| इंस्टॉल से पहले अनप्रमाणित SOAP लॉगिन | health installed=false; विज़ार्ड finish तक लॉगिन विफल रहता है। |
| Tomcat manager / H2 console | manager बहिष्कृत, इस पिन पर H2 console बंद। |
कंस्ट्रक्टर लॉक "इंस्टॉल के बाद इंस्टॉल" के लिए पूर्ण फ़िक्स जैसा दिखता है। checkInstalled अभी भी केवल लॉग करता है। Wicket पेज को सत्र में संग्रहीत करता है। जो सत्र isInstalled() को पार कर चुका है, वह Finish बटन बनाए रखता है जो अभी भी loadAll को कॉल करता है।
admin.sh -i एक दूसरा JVM है और Tomcat CryptProvider लोड नहीं करता, इसलिए यह लैब पहले इंस्टॉलर के रूप में दूसरे web विज़ार्ड और हमलावर के रूप में स्टेल पेज का उपयोग करती है।
cd lab
./run.sh
लूपबैक http://127.0.0.1:18159/openmeetings। अंतिम पंक्ति का साक्ष्य:
SUCCESS OPENMEETINGS-STALE-INSTALL-WITNESS
checkInstalled को पहले से इंस्टॉल होने पर रिटर्न (या थ्रो) करना चाहिए। Finish को एक बार उपयोग होने वाले इंस्टॉल टोकन से बाँधें। जब isInstalled() फ्लिप हो तो सत्र से Wicket पेज हटा दें। यदि पहले से कोई एडमिन मौजूद है तो loadInitUserAndGroup से दूसरा ADMIN न डालें।
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
विक्रेता: [email protected]