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

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

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

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

دليل الأدوات

الفئات

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

log4jcheck

افحص قائمة عناوين URL للتحقق من الثغرة الأمنية Log4j CVE-2021-44228

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

الأكثر شعبية

عرض الكل →

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

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

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

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

مدقق Log4j CVE-2021-44228

يقوم بفحص قائمة عناوين URL بشكل متعدد الخيوط باستخدام طلبات POST وGET مع البارامترات.

مستوحى بشكل كبير من نسخة NortwaveSecurity.

الإعداد

عناوين URL للفحص

يجب أن تكون قائمة عناوين URL للفحص بالتنسيق التالي (csv):

root@kitploit:~
description,URL,method,parameters
production,example.com/login,POST,"username,password"
staging,example.com/search,GET,"q"
development,example.com/,GETNP,""

بعد ذلك، سيتم تنفيذ طلب POST على example.com/login حيث يتم إرسال النص الخام التالي: username={jndi:ldap...}&password={jndi:ldap...}

وبالمثل، سيتم تنفيذ طلب GET التالي: example.com/search?q={jndi:ldap...}.

بدلاً من ذلك، يمكنك تحديد GETNP (GET No Parameters) لتنفيذ GET على الرابط مع إلحاق الحمولة به: example.com/new/{jndi:ldap...}.

بالإضافة إلى ذلك، يتم إدراج الحمولة أيضًا في ترويسات User-Agent وReferer وX-Forwarded-For وAuthentication لزيادة فرص نجاح الاستغلال.

إذا كنت تريد فحص عناوين URL لكل من GET وPOST أو GETNP، فيرجى تكرار الإدخال في ملف CSV.

رمز الكناري

للتجهيز دون أي إعدادات مسبقة، يمكنك استخدام https://canarytokens.org/generate وإنشاء CanaryToken من نوع Log4Shell:

Canary Tokens

بدلاً من ذلك، يمكنك إعداد خادم DNS خاص بك.

تشغيل السكربت

قم بتثبيت التبعيات باستخدام pip install-r requirements.txt. قم بتعديل السكربت لتغيير السطر التالي إلى رمز الكناري الذي تفضله:

root@kitploit:~
usage: log4jcheck.py [-h] -f FILE -u URL [-w WAIT] [-t TIMEOUT] [-p PREFIX] [-q THREADS] [-d DONE]

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  The CSV filename containing the URLs
  -u URL, --url URL     DNS subdomain URL on which th callback is performed
  -w WAIT, --wait WAIT  Number of seconds to wait before next request (default: 1)
  -t TIMEOUT, --timeout TIMEOUT
                        HTTP timeout in seconds to use (default: 5)
  -p PREFIX, --prefix PREFIX
                        Type of prefix, see prefixes_injects for options. (default: 0, options 0-3)
  -q THREADS, --threads THREADS
                        Number of threads to distribute the work
  -d DONE, --done DONE  File where we can keep track of items that are done

قم بإنشاء المجلد: /run/logs لإخراج السجلات إليه. هنا يمكنك تتبع التقدم، ولن يتم إرسال أي شيء إلى stdout.

الآن يمكن تشغيل السكربت، مع توجيهه إلى ملف CSV الذي تم إنشاؤه مسبقاً والذي يحتوي على عناوين URL للفحص.

root@kitploit:~
python3 .\log4jcheck.py --file .\urls-example.csv --threads 2 --url "L4J.ujz5sgvgo7xuvn03ft9qrws5w.canarytokens.com/a" -w 0 -t 1

تحقق مما إذا كان الرمز قد تم تشغيله بعد اكتمال السكربت. ستتمكن من الربط المتبادل لتحديد أي تطبيق قام بتشغيل الرمز بناءً على UUID4 المولّد مع البارامتر المحقون، على سبيل المثال: 40852c3b-2d6b-4bd5-a91f-4416aa730619-username.

الاختبار

تم اختباره ضد log4shell-vulnerable-app. قم بتعديل MainControll.java كما يلي:

root@kitploit:~
package fr.christophetd.log4shell.vulnerableapp;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

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

@RestController
public class MainController {

    private static final Logger logger = LogManager.getLogger("HelloWorld");

    @GetMapping("/")
    public String index(@RequestHeader("X-Api-Version") String apiVersion) {
        logger.info("Received a request for API version " + apiVersion);
        return "Hello, world!";
    }

    @GetMapping("/test")
    public String testGet(@RequestParam String test) {
        logger.info("Received a request for test " + test);
        return "Test world!";
    }

    @PostMapping("/test")
    public String test(@RequestBody String test) {
        logger.info("Received a request for test " + test);
        return "Test world!";
    }

}

قم بالتجميع والتشغيل:

root@kitploit:~
gradle bootJar --no-daemon
java -jar .\build\libs\log4shell-vulnerable-app-0.0.1-SNAPSHOT.jar

قم بتشغيل log4jcheck باستخدام ملف urls.csv التالي:

root@kitploit:~
description,URL,method,parameters
test,http://localhost:8080/test,POST,"test"
test,http://localhost:8080/test,GET,"test"

يجب أن تظهر المعلومات التالية في سجل رمز الكناري: Log input

التغطية:

يتم تغطية ترويسات HTTP التالية:

  • X-Api-Version
  • User-Agent
  • Referer
  • X-Druid-Comment
  • Origin
  • Location
  • X-Forwarded-For
  • Cookie
  • X-Requested-With
  • X-Forwarded-Host
  • Accept

لكل عملية حقن، يمكن استخدام بادئات JNDI التالية:

  • 0: jndi:dns
  • 1: jndi:${lower:l}${lower:d}ap
  • 2: jndi:rmi
  • 3: jndi:ldap

إخلاء مسؤولية

لاحظ أن السكربت يقوم فقط بفحص ما يلي: User Agent وأي بارامترات تحددها في طلب POST أو GET. سيؤدي هذا إلى نتائج سلبية خاطئة في الحالات التي يلزم فيها استهداف ترويسات أخرى، أو حقول إدخال مفقودة، وما إلى ذلك، لتفعيل الثغرة. لا تتردد في إضافة فحوصات إضافية إلى السكربت.

الترخيص

Log4jcheck هو برنامج مفتوح المصدر مرخص بموجب رخصة MIT.

تنزيل الأداة