
CVE-2021-27850 के लिए एक प्रूफ ऑफ कॉन्सेप्ट जो Apache Tapestry को प्रभावित करता है और अनधिकृत रिमोट कोड निष्पादन की ओर ले जाता है।
CVE-2021-27850 एक गंभीर अप्रमाणित रिमोट कोड निष्पादन कमजोरी है जो Apache Tapestry के सभी हालिया संस्करणों में पाई गई थी। AppModule.class फ़ाइल डाउनलोड करके हम Apache Tapestry में सभी सीरियलाइज़्ड ऑब्जेक्ट्स पर हस्ताक्षर करने के लिए उपयोग किए जाने वाले HMAC गुप्त कुंजी को लीक कर सकते हैं।
हम इस CVE का सामना एक वास्तविक जीवन मूल्यांकन में किया और जहां तक मुझे पता है, Tapestry द्वारा सीरियलाइज़्ड ऑब्जेक्ट्स पर हस्ताक्षर करने के तरीके पर कोई सार्वजनिक शोषण (एक्सप्लॉइट) उपलब्ध नहीं है, इसलिए हमने निम्नलिखित POC प्रकाशित करने का निर्णय लिया जिसे हमने लंबे समय तक Apache Tapestry स्रोत कोड में खुदाई करने के बाद उपयोग किया था x) ।
1- इस रेपो को क्लोन करें
2- निम्नलिखित कमांड चलाएँ
javac -classpath commons-codec-1.15/commons-codec-1.15.jar:. Exploit.java
3- अंत में निम्नलिखित चलाएँ:
java -cp commons-codec-1.15/commons-codec-1.15.jar:. Exploit [Tapestry Key] [Ysoserial Payload] [Command To Execute]
जहां [Tapestry Key] AppModule.class से लीक हुई Hmac कुंजी है, [Ysoserial Payload] ysoserial से उपयोग करने के लिए पेलोड है और [Command To Execute] वह कमांड है जिसे आप निष्पादित करना चाहते हैं।

नोट: सामान्य Java डिसीरियलाइज़ेशन शोषण के विपरीत जहां आपके द्वारा चलाए जाने वाले कमांड सीमित होते हैं (कोई पाइप या विशेष वर्ण नहीं ..) आप यहां कोई भी जटिल कमांड उपयोग कर सकते हैं क्योंकि हम कमांड को निष्पादित करने से पहले निम्नलिखित जोड़ रहे हैं sh -c $@|sh . echo ।
संदर्भ: