
تحدث تنفيذ التعليمات البرمجية عن بُعد في Apache Solr قبل الإصدار 7.1 مع Apache Lucene قبل الإصدار 7.1 عن طريق استغلال ثغرة XXE بالاقتران مع استخدام أمر Config API add-listener للوصول إلى فئة RunExecutableListener.
يحدث تنفيذ التعليمات البرمجية عن بُعد في Apache Solr قبل الإصدار 7.1 مع Apache Lucene قبل الإصدار 7.1 عن طريق استغلال ثغرة XXE بالتزامن مع استخدام أمر add-listener لواجهة Config API للوصول إلى الفئة RunExecutableListener. Elasticsearch، على الرغم من أنها تستخدم Lucene، ليست معرضة لهذه الثغرة. لاحظ أن ثغرة توسع الكيان الخارجي XML تحدث في محلل استعلام XML المتوفر افتراضيًا لأي طلب استعلام مع وسائط deftype=xmlparser ويمكن استغلالها لتحميل بيانات ضارة إلى معالج طلب /upload أو كـ XXE أعمى باستخدام غلاف ftp من أجل قراءة ملفات محلية عشوائية من خادم Solr. لاحظ أيضًا أن الثغرة الثانية تتعلق بتنفيذ التعليمات البرمجية عن بُعد باستخدام RunExecutableListener المتوفر في جميع إصدارات Solr المتأثرة.
يجب تسريب مخرجات الأوامر خارج النطاق (OOB). تتضمن هذه الأداة الإثباتية دعمًا لتنسيقي Hex وBase32، وكلاهما غير حساس لحالة الأحرف.
usage: rce.py [-h] -ue URL_BASE_EXTERNAL -ui URL_BASE_INTERNAL [-b {curl,wget,ftp,ping,nc,ncat,nslookup,dig}] -e EXFIL
[-f {hex,base32}]
POC for CVE-2017-12629 (RCE via internal SSRF via XXE) by @realCaptainWoof
options:
-h, --help show this help message and exit
-ue, --url-base-external URL_BASE_EXTERNAL
External URL base of the vulnerable application; e.g, 'https://vulnerable.app/solr'
-ui, --url-base-internal URL_BASE_INTERNAL
Internal URL base of the vulnerable application; e.g, 'https://127.0.0.1:8983'; default:
'https://127.0.0.1:8983'
-b, --bin {curl,wget,ftp,ping,nc,ncat,nslookup,dig}
How to exfiltrate command output from target; default: 'curl'
-e, --exfil EXFIL Destination to exfil to. Make sure this corresponds to '--bin'; e.g, if '--bin' is 'curl', '--exfil' can
be 'http://EXFIL.myserver.com/EXFIL'. Must specify injection point via 'EXFIL' keyword.
-f, --exfil-format {hex,base32}
Format in which to exfil the command output; default: 'base32'