
पूरी तरह से रीफैक्टर किया गया, Python 3 संगत एक्सप्लॉइट स्क्रिप्ट Tomcat Ghostcat (CVE-2020-1938 / CNVD-2020-10487) AJP लोकल फ़ाइल इन्क्लूज़न के लिए
यह परियोजना Apache Tomcat AJP प्रोटोकॉल स्थानीय फ़ाइल समावेशन भेद्यता (जिसे सामान्यतः Ghostcat (घोस्ट कैट), CVE-2020-1938 / CNVD-2020-10487 के नाम से जाना जाता है) को सत्यापित करने के लिए एक Python सत्यापन स्क्रिप्ट प्रदान करती है।
यह स्क्रिप्ट मूल रूप से प्रचलित Python 2 संस्करण पर आधारित है, जिसमें पूर्ण पुनर्निर्माण एवं सुधार किया गया है। यह Python 3 वातावरण के साथ पूर्णतः संगत है; StringIO, base64 एन्कोडिंग तथा बाइनरी डेटा और स्ट्रिंग के संयोजन के दौरान उत्पन्न संगतता समस्याओं को ठीक किया गया है, और आधुनिक ऑपरेटिंग सिस्टम पर स्थिरता बढ़ाई गई है।
Apache Tomcat, AJP (Apache JServ Protocol) प्रोटोकॉल को संभालते समय डिफ़ॉल्ट रूप से पोर्ट 8009 खोलता है, तथा आने वाले अनुरोध गुणों की कठोर सुरक्षा जाँच नहीं करता है।
हमलावर दुर्भावनापूर्ण AJP अनुरोध निर्मित करके javax.servlet.include.request_uri, javax.servlet.include.path_info और javax.servlet.include.servlet_path जैसे गुणों को इंजेक्ट कर सकता है:
DefaultServlet को धोखा देकर, वेब एप्लिकेशन निर्देशिका के अंतर्गत किसी भी फ़ाइल (जैसे WEB-INF/web.xml, कॉन्फ़िगरेशन फ़ाइलें आदि) को पढ़ सकता है।JspServlet को उस फ़ाइल को JSP के रूप में पार्स और संकलित करने के लिए बाध्य कर सकता है, जिससे दूरस्थ कमांड निष्पादन प्राप्त होता है।नोट: यह भेद्यता केवल स्थानीय फ़ाइल समावेशन (LFI) का समर्थन करती है, प्रत्यक्ष दूरस्थ फ़ाइल समावेशन (RFI) का समर्थन नहीं करती है।
कमांड लाइन सिंटैक्स:
python CNVD-2020-10487-Tomcat-Ajp-lfi.py <目标IP> [-p 目标端口] [-f 目标文件路径]
target (आवश्यक): लक्ष्य होस्ट का IP पता या डोमेन नाम।-p, --port (वैकल्पिक): AJP पोर्ट, डिफ़ॉल्ट 8009 है।-f, --file (वैकल्पिक): वह लक्ष्य फ़ाइल जिसे पढ़ना है, उसका सापेक्ष पथ, डिफ़ॉल्ट WEB-INF/web.xml है।बुनियादी जाँच (डिफ़ॉल्ट web.xml पढ़ना):
python CNVD-2020-10487-Tomcat-Ajp-lfi.py 127.0.0.1
निर्दिष्ट पोर्ट और फ़ाइल (कस्टम कॉन्फ़िगरेशन फ़ाइल पढ़ना):
python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.1.100 -p 8009 -f WEB-INF/classes/application.properties
यदि आपका सिस्टम इस भेद्यता से प्रभावित है, तो तुरंत निम्नलिखित सुरक्षा उपाय करने की अनुशंसा की जाती है:
conf/server.xml में <Connector port="8009" protocol="AJP/1.3" ... /> कॉन्फ़िगरेशन को कमेंट या हटाने की अनुशंसा की जाती है।requiredSecret (Tomcat 8.5.51/9.0.31 और उसके बाद के संस्करणों में secret) विशेषता जोड़कर प्रमाणीकरण को अनिवार्य करें।यह स्क्रिप्ट केवल साइबर सुरक्षा अनुसंधान, शिक्षा और उद्यमों के आंतरिक अनुपालन सुरक्षा ऑडिट के लिए है। कृपया इस स्क्रिप्ट का उपयोग अनधिकृत लक्ष्यों पर अवैध जाँच या हमले के लिए न करें। इस स्क्रिप्ट का उपयोग करते समय उपयोगकर्ता के लिए स्थानीय कानूनों और विनियमों का पालन करना अनिवार्य है; अनुचित या अवैध उपयोग के कारण उत्पन्न किसी भी परिणाम की जिम्मेदारी उपयोगकर्ता स्वयं वहन करेगा।