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-11391 — WordPress PPOM for WooCommerce Plugin <= 33.0.15 es vulnerable a inyección SQL. | Kitploit
Herramientas/GitHubGitHub/moritakaaz/cve-2025-11391
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAprendizaje y EducaciónSeguridad de Bases de Datos
GitHubmoritakaaz/cve-2025-11391

CVE-2025-11391

WordPress PPOM for WooCommerce Plugin <= 33.0.15 es vulnerable a inyección SQL.

Ver Repositorio
hace 10 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

Inyección SQL Ciega No Autenticada en PPOM para WooCommerce <= 33.0.15

Este repositorio contiene una Prueba de Concepto (PoC) para una vulnerabilidad de inyección SQL ciega basada en tiempo no autenticada en el plugin de WordPress "PPOM for WooCommerce", que afecta a las versiones hasta la 33.0.15 inclusive.

Detalles de la Vulnerabilidad

  • Plugin: PPOM for WooCommerce
  • Versiones Afectadas: <= 33.0.15
  • Versión Parcheada: 33.0.16
  • Tipo de Vulnerabilidad: Inyección SQL ciega basada en tiempo no autenticada
  • ID CVE: CVE-2025-11391 (Asignado con fines de seguimiento)

Descripción

La vulnerabilidad existe porque el plugin no sanea adecuadamente la entrada proporcionada por el usuario antes de usarla en una consulta SQL. Específicamente, la función get_product_meta() en classes/plugin.class.php concatena directamente el parámetro $meta_id en la consulta SQL sin utilizar sentencias preparadas.

Código Vulnerable (classes/plugin.class.php):

root@kitploit:~
function get_product_meta( $meta_id ) {
    // ...
    global $wpdb;
    $qry = 'SELECT * FROM ' . $wpdb->prefix . PPOM_TABLE_META . " WHERE productmeta_id = $meta_id";
    $res = $wpdb->get_row( $qry );
    return $res;
}

Un atacante no autenticado puede explotar esto creando una carga maliciosa e inyectándola en el parámetro ppom[fields][id] al añadir un producto al carrito. Esto permite al atacante ejecutar comandos SQL arbitrarios, como funciones de retardo de tiempo (SLEEP()), lo que le permite confirmar la vulnerabilidad y potencialmente exfiltrar información sensible de la base de datos carácter por carácter.

La vulnerabilidad se activa cuando la opción "Enable Legacy Price Calculations" está activa en la configuración del plugin, ya que esto obliga a la aplicación a utilizar la ruta de código vulnerable durante las operaciones del carrito.

Estructura del Repositorio

root@kitploit:~
└── cve-2025-11391/
    ├── exploit.py                  # El script de Prueba de Concepto en Python.
    └── woocommerce-product-addon/  # Versión vulnerable del plugin (v33.0.15).

Pasos de Configuración y Reproducción

1. Requisitos

  • Un entorno de servidor web local (por ejemplo, XAMPP, WAMP, MAMP).
  • Una instalación nueva de WordPress.
  • El plugin WooCommerce instalado y activado.
  • Python 3.x con la librería requests instalada (pip install requests).

2. Configuración del Laboratorio

  1. Inicie su servidor web local (Apache, MySQL).
  2. Instale WordPress en un directorio (por ejemplo, /htdocs/wp4hacking/).
  3. Instale y active el plugin WooCommerce desde el panel de WordPress.
  4. Instale la versión vulnerable de woocommerce-product-addon (v33.0.15) proporcionada en este repositorio subiendo el archivo .zip desde el directorio woocommerce-product-addon/.
  5. Active el plugin "PPOM for WooCommerce".

3. Configuración Vulnerable

  1. En el panel de WordPress, vaya a PPOM Fields > Settings.
  2. Busque la opción "Enable Legacy Price Calculations" y marque la casilla para habilitarla.
  3. Guarde los cambios.
  4. Vaya a PPOM Fields y cree un nuevo Grupo de Campos (por ejemplo, nómbrelo "PoC Group").
  5. Dentro de este grupo, añada un campo de Entrada de Texto. Asígnele un título (por ejemplo, "SQL Injection") y un nombre de dato (por ejemplo, sql_injection).
  6. Vaya a Products > Add New para crear un nuevo producto de WooCommerce.
  7. Asigne un nombre al producto (por ejemplo, "Product Testing") y un precio.
  8. En la página de edición del producto, busque la pestaña "PPOM Fields" y seleccione el "PoC Group" que creó.
  9. Publique el producto. Anote el ID del producto (por ejemplo, 72).

Explotación

El script exploit.py proporcionado confirma la vulnerabilidad inyectando un comando SLEEP() y midiendo el tiempo de respuesta del servidor.

Cómo Ejecutar el Exploit

  1. Abra el archivo exploit.py y configure las siguientes variables:

    • PRODUCT_URL: La URL completa de la página del producto vulnerable que creó.
    • add_to_cart_data['add-to-cart']: El ID de su producto vulnerable.
  2. Ejecute el script desde su terminal:

    root@kitploit:~
    python exploit.py
    

Salida Esperada

Si el objetivo es vulnerable, el servidor tardará más que la duración del SLEEP() en responder, lo que provocará que el script expire. El script interpreta correctamente este tiempo de espera como una explotación exitosa.

root@kitploit:~
Attempting SQL Injection PoC (One-Step Method)...
Make sure 'Enable Legacy Price Calculations' is active.
[*] Sending SQL Injection payload...
   Request timed out after 10.00 seconds.

[+] SUCCESS! 'Read timed out' occurred because the SLEEP(7) payload was executed.
   The site is vulnerable to Time-Based Blind SQL Injection.

Mitigación

  • Actualice Inmediatamente: Actualice el plugin "PPOM for WooCommerce" a la versión 33.0.16 o posterior.
  • Use Sentencias Preparadas: La versión parcheada utiliza $wpdb->prepare() para sanear adecuadamente la entrada, evitando la inyección SQL.

Código Parcheado (classes/plugin.class.php):

root@kitploit:~
$table = $wpdb->prefix . PPOM_TABLE_META;
$res   = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table WHERE productmeta_id = %d", $meta_id ) );

Aviso Legal

Esta PoC está destinada únicamente a fines educativos y de investigación. No la utilice en ningún sistema que no le pertenezca o para el que no tenga permiso explícito de prueba. El autor no es responsable del mal uso o de los daños causados por este script.

Descargar herramienta