Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 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
277 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.
  2. Usa funzioni basate su errori (come UpdateXML) per forzare il database a mostrare i risultati.
  3. Analizza la risposta (in questo PoC, il tag <title>) ed estrai l'output iniettato.
  4. 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

python main.py --host <TARGET_IP>

Output di debug opzionale:

python main.py --host <TARGET_IP> --debug

Output Atteso (da compilare)

└─$ 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