Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-11391 — WordPress PPOM for WooCommerce Plugin <= 33.0.15 é vulnerável a Injeção de SQL | Kitploit
Ferramentas/GitHubGitHub/r3db34rdh4x/cve-2025-11391
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebPapers e PesquisaAprendizado e Educação
GitHubr3db34rdh4x/cve-2025-11391

CVE-2025-11391

WordPress PPOM for WooCommerce Plugin <= 33.0.15 é vulnerável a Injeção de SQL

Ver Repositório
111há 11 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

Injeção SQL Cega Não Autenticada no PPOM para WooCommerce <= 33.0.15

Este repositório contém uma Prova de Conceito (PoC) para uma vulnerabilidade de injeção SQL cega baseada em tempo, não autenticada, no plugin WordPress "PPOM for WooCommerce", afetando versões até 33.0.15 inclusive.

Detalhes da Vulnerabilidade

  • Plugin: PPOM for WooCommerce
  • Versões Afetadas: <= 33.0.15
  • Versão Corrigida: 33.0.16
  • Tipo de Vulnerabilidade: Injeção SQL cega baseada em tempo, não autenticada
  • ID CVE: CVE-2025-11391 (Atribuído para fins de rastreamento)

Descrição

A vulnerabilidade existe porque o plugin não sanitiza adequadamente a entrada fornecida pelo usuário antes de usá-la em uma consulta SQL. Especificamente, a função get_product_meta() em classes/plugin.class.php concatena diretamente o parâmetro $meta_id na consulta SQL sem usar prepared statements.

Código Vulnerável (classes/plugin.class.php):

function get_product_meta( $meta_id ) {
    // ...
    global $wpdb;
    $qry = 'SELECT * FROM ' . $wpdb->prefix . PPOM_TABLE_META . " WHERE productmeta_id = $meta_id";
    $res = $wpdb->get_row( $qry );
    return $res;
}

Um atacante não autenticado pode explorar isso criando um payload malicioso e injetando-o no parâmetro ppom[fields][id] ao adicionar um produto ao carrinho. Isso permite que o atacante execute comandos SQL arbitrários, como funções de atraso de tempo (SLEEP()), permitindo confirmar a vulnerabilidade e potencialmente exfiltrar informações sensíveis do banco de dados caractere por caractere.

A vulnerabilidade é acionada quando a opção "Enable Legacy Price Calculations" está ativa nas configurações do plugin, pois isso força o aplicativo a usar o caminho de código vulnerável durante as operações do carrinho.

Estrutura do Repositório

└── cve-2025-11391/
    ├── exploit.py                  # O script Python da Prova de Conceito.
    └── woocommerce-product-addon/  # Versão vulnerável do plugin (v33.0.15).

Configuração e Etapas de Reprodução

1. Requisitos

  • Um ambiente de servidor web local (ex.: XAMPP, WAMP, MAMP).
  • Uma instalação nova do WordPress.
  • O plugin WooCommerce instalado e ativado.
  • Python 3.x com a biblioteca requests instalada (pip install requests).

2. Configuração do Laboratório

  1. Inicie seu servidor web local (Apache, MySQL).
  2. Instale o WordPress em um diretório (ex.: /htdocs/wp4hacking/).
  3. Instale e ative o plugin WooCommerce pelo painel do WordPress.
  4. Instale a versão vulnerável do woocommerce-product-addon (v33.0.15) fornecida neste repositório enviando o arquivo .zip do diretório woocommerce-product-addon/.
  5. Ative o plugin "PPOM for WooCommerce".

3. Configuração Vulnerável

  1. No painel do WordPress, vá para PPOM Fields > Settings.
  2. Encontre a opção "Enable Legacy Price Calculations" e marque a caixa para ativá-la.
  3. Salve as alterações.
  4. Vá para PPOM Fields e crie um novo Grupo de Campos (ex.: nomeie-o como "PoC Group").
  5. Dentro deste grupo, adicione um campo Text Input. Dê a ele um título (ex.: "SQL Injection") e um nome de dados (ex.: sql_injection).
  6. Vá para Products > Add New para criar um novo produto WooCommerce.
  7. Dê ao produto um nome (ex.: "Product Testing") e um preço.
  8. Na página de edição do produto, encontre a aba "PPOM Fields" e selecione o "PoC Group" que você criou.
  9. Publique o produto. Anote o ID do Produto (ex.: 72).

Exploração

O script exploit.py fornecido confirma a vulnerabilidade injetando um comando SLEEP() e medindo o tempo de resposta do servidor.

Como Executar o Exploit

  1. Abra o arquivo exploit.py e configure as seguintes variáveis:

    • PRODUCT_URL: A URL completa da página do produto vulnerável que você criou.
    • add_to_cart_data['add-to-cart']: O ID do seu produto vulnerável.
  2. Execute o script no seu terminal:

    python exploit.py
    

Saída Esperada

Se o alvo estiver vulnerável, o servidor levará mais tempo que a duração do SLEEP() para responder, fazendo com que o script expire. O script interpreta corretamente esse timeout como uma exploração bem-sucedida.

Attempting SQL Injection PoC (One-Step Method)...
Make sure 'Enable Legacy Price Calculations' is active.
[*] Sending SQL Injection payload...
   Request timed out after 10.00 seconds.

[+] SUCCESS! 'Read timed out' occurred because the SLEEP(7) payload was executed.
   The site is vulnerable to Time-Based Blind SQL Injection.

Mitigação

  • Atualize Imediatamente: Atualize o plugin "PPOM for WooCommerce" para a versão 33.0.16 ou posterior.
  • Use Prepared Statements: A versão corrigida usa $wpdb->prepare() para sanitizar adequadamente a entrada, prevenindo a injeção SQL.

Código Corrigido (classes/plugin.class.php):

$table = $wpdb->prefix . PPOM_TABLE_META;
$res   = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table WHERE productmeta_id = %d", $meta_id ) );

Aviso Legal

Esta PoC destina-se apenas a fins educacionais e de pesquisa. Não a use em qualquer sistema que você não possua ou para o qual não tenha permissão explícita para testar. O autor não é responsável por qualquer uso indevido ou dano causado por este script.

Baixar ferramenta