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
wp2shell-poc2 — CVE-2026-63030 | Kitploit
Ferramentas/GitHubGitHub/attackercan/wp2shell-poc2
Frameworks de ExploraçãoAnálise de VulnerabilidadesExploração de Aplicações WebPós-ExploraçãoTestes de PenetraçãoComando e ControleRed TeamingDesenvolvimento de Payloads
GitHubattackercan/wp2shell-poc2

wp2shell-poc2

CVE-2026-63030

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

wp2shell-poc

Prova de conceito para uma injeção de SQL não autenticada no núcleo do WordPress que encadeia até execução remota de código, por meio de confusão de rota no lote REST (CVE-2026-63030).

O exploit não exige credenciais nem configuração além de um alvo acessível. Ele alcança a injeção por meio de um único endpoint: POST /wp-json/batch/v1.

A descoberta em si é que a injeção de SQL não autenticada — check a confirma e read demonstra leitura arbitrária do banco de dados. O comando shell é pós-exploração opcional (credenciais de administrador recuperadas → upload de plugin → execução de comandos), incluído para demonstrar o impacto completo; não é a vulnerabilidade.

Versões afetadas

Baixar ferramenta
BranchAfetadasCorrigida em
6.9.x6.9.0 – 6.9.46.9.5
7.0.x7.0.0 – 7.0.17.0.2

Versões anteriores à 6.9.0 não são afetadas por esta cadeia.

Como funciona

O endpoint REST de lote (/batch/v1) não é autenticado e executa várias sub-requisições em uma única chamada, contando com cada sub-requisição sendo validada e verificada quanto a permissões individualmente.

serve_batch_request_v1() constrói dois arrays paralelos — $matches (o handler correspondente para cada sub-requisição) e $validation (o resultado da validação para cada sub-requisição) — e então indexa ambos pelo mesmo offset ao despachar. Uma sub-requisição cujo caminho falha em wp_parse_url() é acrescentada a $validation, mas não a $matches, fazendo com que os arrays fiquem dessincronizados e uma sub-requisição seja despachada sob o handler de uma sub-requisição diferente. Essa é a confusão de rota.

O PoC aninha a primitiva duas vezes:

  1. Uma requisição POST /wp/v2/posts que carrega um corpo requests é despachada sob o próprio handler do lote. Tendo sido validada como uma requisição de posts, sua lista requests nunca é verificada contra o esquema do lote, então suas sub-requisições podem usar GET — a lista de permissões de métodos é contornada.
  2. Dentro desse lote interno, uma requisição GET /wp/v2/users carregando uma string author_exclude (o esquema de users não possui esse parâmetro, então o valor passa pela validação intocado) é despachada sob get_items() de posts. Lá, author_exclude é mapeada para a query var author__not_in do WP_Query, que a versão vulnerável interpola no SQL como uma string.

O resultado é uma injeção SQL cega baseada em booleano e tempo, acessível antes da autenticação. Com acesso de leitura ao banco de dados, o hash da senha do administrador pode ser recuperado; uma vez quebrado, o acesso de administrador permite execução de código por meio do upload de um plugin.

Requisitos

Python 3.8+ e a biblioteca padrão. Sem dependências de terceiros.

Uso

Execute a partir do diretório do repositório:

root@kitploit:~
./wp2shell.py <command> <url> [options]

Ou pip install . para obter um comando wp2shell no seu PATH.

check — confirme a vulnerabilidade (seguro)

Confirma a explorabilidade com um atraso de tempo diferencial. Não lê nenhum dado e não altera nada.

root@kitploit:~
./wp2shell.py check http://target

read — extraia dados (injeção SQL cega)

root@kitploit:~
./wp2shell.py read http://target                      # server fingerprint
./wp2shell.py read http://target --preset users       # user logins and password hashes
./wp2shell.py read http://target --query "SELECT @@version"

shell — execute um comando (execução remota de código)

Pós-exploração opcional. Requer credenciais de administrador válidas; a injeção recupera o hash da senha, portanto forneça o texto simples recuperado aqui.

root@kitploit:~
./wp2shell.py shell http://target --user admin --password '<recovered>' --cmd id
./wp2shell.py shell http://target --user admin --password '<recovered>' -i   # interactive shell

shell envia um webshell de plugin (protegido por um caminho aleatório e um token por execução) e imprime seu caminho. Remova-o quando terminar.

Opções

OpçãoAplica-se aDescrição
--rest-routetodosUse /?rest_route=/batch/v1 (para sites sem permalinks amigáveis).
--proxy URLtodosEncaminhe o tráfego por um proxy HTTP (por exemplo, Burp).
--timeout NtodosTempo limite da requisição em segundos.
--sleep NcheckAtraso usado para confirmar a injeção.
--presetreadfingerprint ou users.
--queryreadUma expressão SQL escalar para ler.
--prefixreadPrefixo da tabela do banco de dados (padrão wp_).
--max-length NreadMáximo de caracteres lidos por valor (padrão 128).
--user / --passwordshellCredenciais de administrador (texto simples, recuperadas do hash).
--cmdshellComando a executar (omita ao usar -i).
-i / --interactiveshellAbra um shell interativo após a implantação.

Mitigação

Atualize para o WordPress 6.9.5 ou 7.0.2. Até lá, bloqueie tanto /wp-json/batch/v1 quanto o parâmetro de consulta rest_route=/batch/v1 na borda, ou exija autenticação para o endpoint de lote por meio do filtro rest_pre_dispatch.

Avisos legais

Apenas para testes de segurança autorizados. Use-o exclusivamente contra sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar. O autor não se responsabiliza por uso indevido.

Referências

  • Anúncio do lançamento do WordPress 7.0.2 — https://wordpress.org/news/2026/07/wordpress-7-0-2-release/
  • CVE-2026-63030