Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
joomla.3.7.0exploit — Exploit proof-of-concept per la vulnerabilità di SQL injection in com_fields di Joomla 3.7.0 (CVE-2017-8917), che dimostra rilevamento, enumerazione ed estrazione dei dati in un flusso di lavoro adatto alle CTF. | Kitploit
Strumenti/GitHubGitHub/ztrxwzy/joomla.3.7.0exploit
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebCTFPenetration Testing
GitHubztrxwzy/joomla.3.7.0exploit

joomla.3.7.0exploit

Exploit proof-of-concept per la vulnerabilità di SQL injection in com_fields di Joomla 3.7.0 (CVE-2017-8917), che dimostra rilevamento, enumerazione ed estrazione dei dati in un flusso di lavoro adatto alle CTF.

Vedi Repository
27 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2017-8917 Joomla SQLi PoC

Questa repository contiene un proof of concept (PoC) semplice e adatto a CTF per la vulnerabilità di SQL injection com_fields di Joomla (CVE-2017-8917). L'obiettivo è mantenere il flusso di lavoro leggero mostrando comunque l'intero flusso di sfruttamento: rilevamento, enumerazione ed estrazione dei dati.

Panoramica su CVE-2017-8917

Vulnerabilità: SQL injection nel componente com_fields di Joomla.

Causa principale: il parametro list[fullordering] non viene sanitizzato correttamente, consentendo di iniettare SQL nella query generata. Se combinato con un payload basato su errori (ad es. UpdateXML), il risultato SQL può essere mostrato nella risposta, consentendo l'estrazione dei dati.

Come viene sfruttata (a livello generale):

  1. Invia una richiesta appositamente modificata a index.php?option=com_fields&view=fields&layout=modal con il parametro list[fullordering] impostato su un payload dannoso.
  • Usa funzioni basate su errori (come UpdateXML) per forzare il database a mostrare i risultati.
  • Analizza la risposta (in questo PoC, il tag <title>) ed estrai l'output iniettato.
  • Itera le query per enumerare versione, nome del database, tabelle, colonne e righe.
  • Punti Chiave del Codice

    Di seguito sono riportati i componenti più critici.

    parse_args()

    Analizza gli argomenti della CLI in un semplice oggetto args con host e debug. Lo script presuppone HTTP sulla porta 80 e costruisce l'URL di base da --host.

    run_exploit()

    run_exploit() è la funzione principale di orchestrazione:

    • Gestione della sessione: usa requests.Session() così cookie e header persistono.
    • request_title(): invia una richiesta ed estrae il valore <title>. Il PoC usa SQLi basata su errori per far trapelare i dati in quel tag, quindi questo è il cuore dell'estrazione dei dati.
    • build_params(): crea i parametri vulnerabili della richiesta con la SQL iniettata.
    • Flusso completo: sonda → enumera → dump.
    • Metodi di enumerazione/dump: sql_list() e dump_table() automatizzano l'enumerazione e l'estrazione a blocchi.

    _fetch_token()

    Il token CSRF viene estratto dalla pagina di login di Joomla. Anche se alcuni scenari potrebbero non richiederlo, molte route di Joomla impongono comunque controlli CSRF. Includerlo:

    • Migliora l'affidabilità in configurazioni più restrittive.
    • Rende il PoC "più realistico".
    • Consente di riutilizzare lo script anche se è imposto un flusso di login o un controllo del token.

    wrap_payload() e encode_sql_string()

    Questi helper generano il payload di iniezione effettivo:

    • wrap_payload() avvolge una query grezza in UpdateXML(...) per forzare un output basato su errori.
    • encode_sql_string() converte le stringhe in espressioni CHAR(...) per evitare problemi di quoting.

    Estrazione a blocchi (_dump_table())

    Le righe vengono concatenate con un separatore e recuperate in sottostringhe per evitare troncamenti. Questo mantiene coerente l'output anche quando i valori delle righe sono lunghi.

    Utilizzo

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

    Output di debug opzionale:

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

    Output Atteso (da compilare)

    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_       'LLLLLLLLLLLLLLLLLLLLLLf`
             'LLLLLLLLLLLLLLLLLLLLLLLLLLm_       'LLLLLLLLLLLLLLLLLLf`
                LLLLLLLLLLLLLLLLLLLLLL  'LL     LLLLLLLLLLLLLLLLL
                 'LLLLLLLLLLLLLLLLLLL    L     LLLLLLLLLLLLLLL~
                   _LLLLLLLLLLLLLLL  !i   ]   ,LLLLLLLLLLLLLLLs.
               gLLLLLLLLLLLLLLLLL!   's  [ _mLLLLLLLLLLLLLLLLLLLs
             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[
           !LLLLLLLLLLLLf`       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 BY ztrxwzy. 
                  INSPIRED BY THE POC FROM Baptiste Contreras.
        
    [888] Target : http://10.66.187.202:80/index.php
    [888] CSRF token : 3ec54b1b32b5dc2dd8186537821b8dc1
    [888] http://10.66.187.202:80/index.php is vulnerable to SQLi
    [888] Database version detected : 5.5.64-MariaDB
    [888] Current database : joomla
    [888] Tables in database joomla
    
    

    Crediti e Autore

    • Autore: ztrxwzy
    • Ispirazione: parti di questo PoC sono ispirate al lavoro di Baptiste Contreras:
      https://github.com/BaptisteContreras/CVE-2017-8917-Joomla

    Licenza

    Licenza MIT Copyright (c) 2025 Jesús Caldera

    Con la presente viene concessa gratuitamente l'autorizzazione a qualsiasi persona che ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), a trattare il Software senza alcuna restrizione, inclusi, a titolo esemplificativo ma non esaustivo, i diritti di utilizzare, copiare, modificare, fondere, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di consentire alle persone a cui il Software è fornito di fare altrettanto, alle seguenti condizioni:

    L'avviso di copyright sopra riportato e il presente avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

    IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSI, SENZA LIMITAZIONE, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O DANNOSA, DERIVANTE DA, O IN CONNESSIONE CON, IL SOFTWARE O L'USO O ALTRE OPERAZIONI CON IL SOFTWARE.

    Scarica lo strumento