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
Herramientas/GitHubGitHub/ztrxwzy/joomla.3.7.0exploit
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de Penetración
GitHubztrxwzy/joomla.3.7.0exploit

joomla.3.7.0exploit

Exploit de Prueba de Concepto para la vulnerabilidad de inyección SQL en com_fields de Joomla 3.7.0 (CVE-2017-8917), que demuestra detección, enumeración y extracción de datos en un flujo de trabajo compatible con CTF.

Ver Repositorio
2hace 7 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-2017-8917 PoC de SQLi en Joomla

Este repositorio contiene un proof of concept (PoC) simple y apto para CTF para la vulnerabilidad de inyección SQL com_fields de Joomla (CVE-2017-8917). El objetivo es mantener el flujo de trabajo ligero mientras se muestra el flujo completo de explotación: detección, enumeración y extracción de datos.

Visión general de CVE-2017-8917

Vulnerabilidad: Inyección SQL en el componente com_fields de Joomla.

Causa raíz: El parámetro list[fullordering] no está debidamente sanitizado, lo que permite inyectar SQL en la consulta generada. Cuando se elabora con un payload basado en errores (por ejemplo, UpdateXML), el resultado SQL puede ser mostrado en la respuesta, permitiendo la extracción de datos.

Cómo se explota (alto nivel):

  1. Enviar una solicitud manipulada a index.php?option=com_fields&view=fields&layout=modal con el parámetro list[fullordering] establecido en un payload malicioso.
  • Usar funciones basadas en errores (como UpdateXML) para forzar a la base de datos a mostrar los resultados.
  • Analizar la respuesta (en este PoC, la etiqueta <title>) y extraer la salida inyectada.
  • Iterar consultas para enumerar versión, nombre de base de datos, tablas, columnas y filas.
  • Rutas clave del código

    A continuación se muestran los componentes más críticos.

    parse_args()

    Analiza los argumentos de la CLI en un objeto args simple con host y debug. El script asume HTTP en el puerto 80 y construye la URL base desde --host.

    run_exploit()

    run_exploit() es la función principal de orquestación:

    • Manejo de sesión: Usa requests.Session() para que las cookies y cabeceras persistan.
    • request_title(): Envía una solicitud y extrae el valor de <title>. El PoC usa SQLi basado en errores para filtrar datos en esa etiqueta, por lo que este es el núcleo de extracción de datos.
    • build_params(): Crea los parámetros de solicitud vulnerables con la SQL inyectada.
    • Flujo completo: probe → enumerate → dump.
    • Métodos de enumeración/volcado: sql_list() y dump_table() automatizan la enumeración y la extracción por fragmentos.

    _fetch_token()

    El token CSRF se extrae de la página de inicio de sesión de Joomla. Aunque algunos escenarios pueden no requerirlo, muchas rutas de Joomla aún imponen comprobaciones CSRF. Incluirlo:

    • Mejora la fiabilidad en configuraciones más estrictas.
    • Hace que el PoC sea "más realista".
    • Te permite reutilizar el script incluso si se aplica un flujo de inicio de sesión o comprobación de token.

    wrap_payload() y encode_sql_string()

    Estos ayudantes generan el payload de inyección real:

    • wrap_payload() envuelve una consulta sin procesar en UpdateXML(...) para forzar la salida basada en errores.
    • encode_sql_string() convierte cadenas en expresiones CHAR(...) para evitar problemas de comillas.

    Extracción por fragmentos (_dump_table())

    Las filas se concatenan con un separador y se obtienen en subcadenas para evitar truncamiento. Esto mantiene la salida consistente incluso cuando los valores de las filas son largos.

    Uso

    root@kitploit:~
    python main.py --host <TARGET_IP>
    

    Salida de depuración opcional:

    root@kitploit:~
    python main.py --host <TARGET_IP> --debug
    

    Salida esperada (rellenar esto)

    root@kitploit:~
    └─$ python exploit.py --host <TARGET>
    
                             ]LLLLLLmmmmmLLLLLL[
                             ]LLLLLLLLLLLLLLLLL[
                             ]LLLLLLLLLLLLLLLLL[
                             ]LLLLLLLLLLLLLLLLL[
                             ]LLLLLLLLLLLLLLLLL[
             ms.             ]LLLLLLLLLLLLLLLLL[              ,m
            ]LLLLs.          ]LLLLLLLL~+LLLLLLL[           _gLLLL
            LLLLLLLL_.        LLLLLLLL  ~~\LLLL[        ,gLLLLLLLi
           dLLLLLLLLLLm_     -LLLLLLLo      LLL[      _mLLLLLLLLLL.
          iLLLLLLLLLLLLLLs.  ]LLf` ,  'c    LLL[   ,gLLLLLLLLLLLLLL
         iLLLLLLLLLLLLLLLLLLsgL`   'c-  \.    LLLLLLLLLLLLLLLLLLLLLL
        ,LLLLLLLLLLLLLLLLLLLLL!      =__/Li  iLLLLLLLLLLLLLLLLLLLLLLL
       gLLLLLLLLLLLLLLLLLLLLLL    imm_.Y~'`  LLLLLLLLLLLLLLLLLLLLLLLLL.
      dLLLLLLLLLLLLLLLLLLLLLLL     'LL_     dLLLLLLLLLLLLLLLLLLLLLLLLLLi
    ,LLLLLLLLLLLLLLLLLLLLLLLLLi        ~--__LLLLLLLLLLLLLLLLLLLLLLLLLLLLs
    'LLLLLLLLLLLLLLLLLLLLLLLLLLs.          LLLLLLLLLLLLLLLLLLLLLLLLLLLLL~
       'LLLLLLLLLLLLLLLLLLLLLLLLLL_.         LLLLLLLLLLLLLLLLLLLLLLLLf
          'LLLLLLLLLLLLLLLLLLLLLLLLLLm_       'LLLLLLLLLLLLLLLLLLLf`
             'LLLLLLLLLLLLLLLLLLLLLLLL'Lm_      LLLLLLLLLLLLLLLL`
                LLLLLLLLLLLLLLLLLLLLLL  'LL     LLLLLLLLLLLLLf
                 'LLLLLLLLLLLLLLLLLLL    L     LLLLLLLLLLL~
                   _LLLLLLLLLLLLLLL  !i   ]   ,LLLLLLLLLLLs.
               gLLLLLLLLLLLLLLLLL!   's  [ _mLLLLLLLLLLLLLLLs
             gmLLLLLLLLLLLLLLLLLLL      ~eLLLLLLLLLLLLLLLLLLLLLms
          _gLLLLLLLLLLLLLLLLLLLLLL.       'LLLLLLLLLLLLLLLLLLLLLLLs_
       _gLLLLLLLLLLLLLLLLLLLLLLLLLL_        !LLLLLLLLLLLLLLLLLLLLLLLLs.
    ,gLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLm_       YLLLLLLLLLLLLLLLLLLLLLLLLLms
     LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLs    ]LLLLLLLLLLLLLLLLLLLLLLLLLL`
      'LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 'YL   ]LLLLLLLLLLLLLLLLLLLLLLLLf
       'LLLLLLLLLLLLLLLLLLLLLLLLLLLf`!   f  ,LLLLLLLLLLLLLLLLLLLLLLLL!
        'LLLLLLLLLLLLLLLLLLLLLLLLL[      LmmLLLLLLLLLLLLLLLLLLLLLLLL`
          LLLLLLLLLLLLLLLLLf  LLLLi   t  LLLLLLL  LLLLLLLLLLLLLLLLL!
          'LLLLLLLLLLLLLLLLf     LLLL[    '*LLLLLLL    'LLLLLLLLLLLLL[
           !LLLLLLLLLf`       LLLLLs     'YLLLLL       ~LLLLLLLLLL
            LLLLLLf~          LLLLLLLs     LLLLL          ~LLLLLL`
            'LLL~             LLLLLLLLLm  iLLLLL             ~LLL~
             ~`               LLLLLLLL[LLmLLLLLL               '`
                              LLLLLL`d[ LLLLLLLL
                              LLLLLLdL[ LLLLLLLL
                              LLLLLLLLLLLLLLLLLL    Juergen Jakubowski
                              LLLLLLLLLLLLLLLLLL
                              LLLLLLLLLLLLLLLLLL   [email protected]
    
                              EXPLOIT POR ztrxwzy. 
                  INSPIRADO POR EL POC DE Baptiste Contreras.
        
    [888] Objetivo : http://10.66.187.202:80/index.php
    [888] Token CSRF : 3ec54b1b32b5dc2dd8186537821b8dc1
    [888] http://10.66.187.202:80/index.php es vulnerable a SQLi
    [888] Versión de base de datos detectada : 5.5.64-MariaDB
    [888] Base de datos actual : joomla
    [888] Tablas en la base de datos joomla
    
    

    Créditos y autor

    • Autor: ztrxwzy
    • Inspiración: Partes de este PoC están inspiradas en el trabajo de Baptiste Contreras:
      https://github.com/BaptisteContreras/CVE-2017-8917-Joomla

    Licencia

    Licencia MIT Copyright (c) 2025 Jesús Caldera

    Se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluidos, entre otros, los derechos de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta de copias del Software, y para permitir a las personas a las que se les proporcione el Software hacerlo, sujeto a las siguientes condiciones:

    El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.

    EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O CUALQUIER OTRA, DERIVADA DE, FUERA O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.

    Descargar herramienta