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
CVE-2026-60137 — wpsqli extrator completo de SQLi + dumper para CVE-2026-60137 | Kitploit
Ferramentas/GitHubGitHub/adarshthakur14777-cyber/cve-2026-60137
Ataques de SenhaAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebColeta de InformaçõesSegurança WebTestes de PenetraçãoSegurança de Banco de Dados

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
GitHub
adarshthakur14777-cyber/cve-2026-60137

CVE-2026-60137

wpsqli extrator completo de SQLi + dumper para CVE-2026-60137

Ver Repositório
5há 1 mêsAinda não revisado

wpsqli - Extrator de SQLi do WordPress (CVE-2026-60137)

Uma ferramenta rápida de extração de banco de dados orientada a menu que explora a vulnerabilidade de injeção SQL author__not_in no núcleo do WordPress. Esta ferramenta se concentra puramente na enumeração e no despejo de banco de dados, utilizando a confusão de rotas do lote REST (CVE-2026-63030) para alcançar o sink de SQLi sem autenticação.


Índice

  • Visão Geral
  • Cadeia de Vulnerabilidades
  • Versões Afetadas
  • Recursos
  • Instalação
  • Uso
  • Opções do Menu
  • Modos de Extração
  • Desempenho
  • Aviso Legal
  • Créditos
  • Licença

Visão Geral

wpsqli é uma ferramenta puramente em Python projetada para explorar uma vulnerabilidade encadeada no núcleo do WordPress que permite injeção SQL sem autenticação no banco de dados. Ela contorna a validação da REST API do WordPress por meio de um bug de confusão de rotas no lote, entregando um payload de string bruto diretamente ao sink SQL do WP_Query.

Esta ferramenta foi construída para velocidade e flexibilidade: ela tenta automaticamente a extração in-band baseada em UNION (instantânea), recorre à extração booleana-cega paralela com 8 threads e, por fim, à extração sequencial baseada em tempo, se necessário.


Cadeia de Vulnerabilidades

Esta ferramenta encadeia duas vulnerabilidades independentes para alcançar a extração não autenticada do banco de dados:

Bug A — Injeção SQL author__not_in (CVE-2026-60137)

Local: wp-includes/class-wp-query.php, WP_Query::get_posts()

O parâmetro author__not_in só aplica a sanitização absint() se a entrada for um array. Se uma string for passada, a proteção is_array() é ignorada, a string passa por implode() inalterada e é concatenada crua na cláusula SQL $where.

root@kitploit:~
// Line 2404: guard only fires for ARRAYS
if ( is_array( $query_vars['author__not_in'] ) ) {
    $query_vars['author__not_in'] = array_unique( array_map( 'absint', $query_vars['author__not_in'] ) );
    sort( $query_vars['author__not_in'] );
}
// Line 2408: string passes straight through
$author__not_in = implode( ',', (array) $query_vars['author__not_in'] );
// Line 2409: raw interpolation
$where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";

Bug B — Confusão de Rotas no Lote REST (CVE-2026-63030)

O endpoint de posts da REST API mapeia author_exclude para author__not_in, mas o declara como type => 'array' de inteiros, então o núcleo coage/rejeita uma string. O Bug B contrabandeia a string para além da validação ao abusar de um bug de dessincronização no endpoint de lote da REST (/wp-json/batch/v1). Ao injetar um primer de caminho malformado que wp_parse_url() rejeita, um WP_Error é semeado na lista de requisições do lote, dessincronizando $matches de $validation. Isso permite que uma sub-requisição seguinte seja despachada sob o manipulador errado, sem validação de parâmetros.


Versões Afetadas

Ressalva: O sink de SQLi só é alcançado quando um cache de objetos persistente (Redis/Memcached) NÃO está em uso.


Recursos

  • Sem Dependências: Biblioteca padrão pura do Python. Nenhum pip install necessário.
  • Extração em Três Níveis:
    • Baseada em UNION: Forja uma linha wp_posts falsa para extrair strings inteiras em uma única requisição HTTP (instantânea).
    • Booleana-cega (Paralela): Se o UNION for bloqueado pelo cache de objetos, usa 8 threads paralelas com busca binária para extrair ~7 requisições por caractere.
    • Baseada em tempo (Sequencial): Fallback se o oráculo booleano não retornar linhas.
  • Enumeração Completa: Liste bancos de dados, tabelas e colunas.
  • Despejo de Tabelas: Despeje tabelas individuais, todas as tabelas de um banco de dados ou um despejo nuclear completo em um arquivo de texto com timestamp.
  • Interrupção Graciosa: Ctrl+C durante a extração interrompe a consulta atual e retorna resultados parciais sem derrubar a sessão.
  • Persistência de Sessão: Conecte-se uma vez e execute várias consultas pelo menu interativo.
  • Sanitização de URL: Remove automaticamente caminhos/consultas da entrada do host para evitar a duplicação de endpoints.
  • Saída Pronta para Crack: Os despejos de usuários incluem o formato ID|user_login|user_pass com hashes bcrypt prontos para hashcat -m 35500.

Instalação

Nenhuma instalação é necessária. Basta baixar e executar:

root@kitploit:~
# Clone the repository
git clone https://github.com/AdarshThakur14777-cyber/CVE-2026-60137.git
# Navigate to directory
cd CVE-2026-60137

# Run
python main.py

Requisitos:

  • Python 3.8+
  • Nenhum pacote externo necessário (apenas stdlib)

Uso

Inicie o menu interativo:

root@kitploit:~
python main.py

Exemplo de Sessão

root@kitploit:~
============================================================
  WP SQLi Extractor v3 (CVE-2026-60137)
============================================================
------------------------------------------------------------
  CONNECTION
   0. Connect / Change target
   1. Check target (version + vuln confirm)
------------------------------------------------------------
  FINGERPRINTING
   2. MySQL version (@@version)
   3. Current database name
   4. Current DB user
   5. WordPress table prefix
   6. Dump wp_users (ID, login, pass hash)
   7. Custom SQL query
   8. Extract all fingerprints (2+3+4+5)
------------------------------------------------------------
  ENUMERATION
   9. List all databases
  10. List all tables (current DB)
  11. List columns of a table
------------------------------------------------------------
  DUMPING
  12. Dump a specific table
  13. Dump all tables (current DB)
  14. Full dump to file (all tables + all rows)
------------------------------------------------------------
  15. Exit
============================================================

Choice: 0
Target (https://example.com): https://target.com
Skip TLS verify? (y/N):
Sleep delay for time-based (default 3):

[*] Connecting to https://target.com ...
[+] Batch endpoint: https://target.com/wp-json/batch/v1
[*] WordPress version: 6.9.4 VULNERABLE
[*] Testing UNION-based extraction ...
[!] UNION not available — trying boolean blind (8 parallel threads) ...
[+] Boolean-blind mode active (8 threads, ~7 reqs/char)
[+] Time-based also works (0.69s vs 3.78s)

Opções do Menu

Conexão

OpçãoDescrição
0Conectar a um alvo (sanitiza URLs automaticamente)
1Verificar a vulnerabilidade e o modo de extração ativo

Fingerprinting

Enumeração

OpçãoDescrição
9Listar todos os bancos de dados no servidor MySQL
10Listar todas as tabelas no banco de dados atual ou especificado
11Listar todos os nomes de colunas de uma tabela específica

Despejo

OpçãoDescrição
12Despejar uma única tabela (com limite opcional de linhas e salvamento em arquivo)
13Despejar todas as tabelas do banco de dados atual
14Despejo nuclear completo — todas as tabelas + todas as linhas em um arquivo com timestamp

Modos de Extração

A ferramenta tenta automaticamente três modos de extração em ordem de velocidade:

1. Baseado em UNION (Instantâneo)

Forja uma linha wp_posts falsa com o valor extraído codificado em hexadecimal na coluna post_title (envolvido pelos marcadores ||..||). A REST API o reflete de volta na resposta — a string inteira em uma única requisição HTTP.

  • 1 requisição por consulta
  • Funciona apenas quando não há cache de objetos persistente ativo
  • Usa CONCAT(0x7c7c, HEX(CAST((<expr>) AS CHAR)), 0x7c7c) para codificar o resultado

2. Booleano-Cego (Paralelo)

Se o UNION não estiver disponível, usa 8 threads paralelas com busca binária para extrair cada caractere. O oráculo booleano verifica se o AND (condition) injetado retorna linhas.

  • ~7 requisições por caractere (paralelizadas em 8 threads)
  • Busca binária na faixa ASCII 32-126
  • Pré-escaneia o comprimento da string via busca binária antes da extração
  • Progresso exibido como caracteres concluídos

3. Baseado em Tempo (Sequencial)

Fallback se o oráculo booleano não retornar linhas (por exemplo, site com 0 posts publicados). Usa IF(condition, SLEEP(N), 0) para codificar a verdade na latência da resposta.

  • ~7 × sleep_delay segundos por caractere (sequencial)
  • Modo mais lento, mas funciona em bancos de dados vazios

Desempenho

Exemplo de Tempos (Boolean, 8 threads)


Aviso Legal

Esta ferramenta foi projetada apenas para testes de segurança autorizados e fins educacionais. Você deve usar esta ferramenta somente contra sistemas de sua propriedade ou para os quais tenha permissão explícita por escrito para testar. O acesso não autorizado a sistemas de computador é ilegal.

Os autores e colaboradores desta ferramenta não são responsáveis por qualquer uso indevido ou dano causado por este software. Use por sua conta e risco.


Créditos

  • Cadeia de vulnerabilidades descoberta por Adam Kues (Assetnote / Searchlight Cyber)
  • Técnica de post falso via UNION: sergiointel/wp2shell-poc (originador)
  • Implementação adaptada de: Icex0/wp2shell-poc
  • Técnica de detecção de confusão de rotas: Hadrian / Icex0

Licença

Esta ferramenta é fornecida apenas para fins educacionais e de testes autorizados.

Baixar ferramenta
Faixa de VersõesStatus
6.8.0 – 6.8.5Bug de SQLi presente, mas cadeia NÃO alcançável (confusão de lote introduzida na 6.9.0)
6.9.0 – 6.9.4VULNERÁVEL — cadeia completa sem autenticação
7.0.0 – 7.0.1VULNERÁVEL — cadeia completa sem autenticação
6.8.6Corrigido (SQLi)
6.9.5Corrigido
7.0.2Corrigido
7.1-beta2+Corrigido
OpçãoDescrição
2Extrair a versão do MySQL (SELECT @@version)
3Extrair o nome do banco de dados atual (SELECT DATABASE())
4Extrair o usuário atual do banco de dados (SELECT CURRENT_USER())
5Extrair o prefixo das tabelas do WordPress
6Despejar a tabela wp_users (ID, login, hash da senha)
7Executar uma consulta SQL personalizada
8Executar todos os fingerprints (opções 2-5) em sequência
ModoRequisições por consultaVelocidadeQuando usado
UNION1InstantâneaSem cache de objetos, contagem de colunas corresponde
Boolean (8 threads)~7 × string_length / 8RápidaUNION bloqueado, há linhas
Time-based~7 × sleep × string_lengthLentaSem linhas para o oráculo booleano
ExtraçãoCaracteresRequisiçõesTempo
Versão do MySQL~20~140~15s
Nome do banco de dados~15~105~12s
Usuário do banco de dados~25~175~20s
Prefixo da tabela~5~35~5s
Linha wp_users (200 caracteres)200~1400~2min