Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
joomla.3.7.0exploit — Exploit de Prova de Conceito para a vulnerabilidade de injeção SQL no Joomla 3.7.0 com_fields (CVE-2017-8917), demonstrando detecção, enumeração e extração de dados em um fluxo de trabalho amigável para CTF. | Kitploit
Ferramentas/GitHubGitHub/ztrxwzy/joomla.3.7.0exploit
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebCTFTestes de Penetração
GitHubztrxwzy/joomla.3.7.0exploit

joomla.3.7.0exploit

Exploit de Prova de Conceito para a vulnerabilidade de injeção SQL no Joomla 3.7.0 com_fields (CVE-2017-8917), demonstrando detecção, enumeração e extração de dados em um fluxo de trabalho amigável para CTF.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
2há 6 mesesAinda não revisado

CVE-2017-8917 PoC de SQLi no Joomla

Este repositório contém uma prova de conceito (PoC) simples e adequada para CTF da vulnerabilidade de injeção SQL com_fields do Joomla (CVE-2017-8917). O objetivo é manter o fluxo de trabalho leve, enquanto ainda mostra o fluxo completo de exploração: detecção, enumeração e extração de dados.

Visão Geral do CVE-2017-8917

Vulnerabilidade: injeção SQL no componente com_fields do Joomla.

Causa raiz: O parâmetro list[fullordering] não é devidamente saneado, permitindo que SQL seja injetada na consulta gerada. Quando elaborado com um payload baseado em erro (ex.: UpdateXML), o resultado do SQL pode ser exibido na resposta, permitindo a extração de dados.

Como é explorado (alto nível):

  1. Envie uma requisição manipulada para index.php?option=com_fields&view=fields&layout=modal com o parâmetro list[fullordering] definido como um payload malicioso.
  2. Use funções baseadas em erro (como UpdateXML) para forçar o banco de dados a ecoar os resultados.
  3. Analise a resposta (neste PoC, a tag <title>) e extraia a saída injetada.
  4. Itere consultas para enumerar versão, nome do banco de dados, tabelas, colunas e linhas.

Principais Caminhos de Código

Abaixo estão os componentes mais críticos.

parse_args()

Analisa argumentos de linha de comando em um simples objeto args com host e debug. O script assume HTTP na porta 80 e constrói a URL base a partir de --host.

run_exploit()

run_exploit() é a função principal de orquestração:

  • Gerenciamento de sessão: Usa requests.Session() para que cookies e cabeçalhos persistam.
  • request_title(): Envia uma requisição e extrai o valor da tag <title>. O PoC usa SQLi baseada em erro para vazar dados para essa tag, então este é o núcleo da extração de dados.
  • build_params(): Cria os parâmetros vulneráveis da requisição com o SQL injetado.
  • Fluxo completo: sonda → enumera → despeja.
  • Métodos de enumeração/despejo: sql_list() e dump_table() automatizam a enumeração e extração em partes.

_fetch_token()

O token CSRF é extraído da página de login do Joomla. Embora alguns cenários possam não exigir, muitas rotas do Joomla ainda impõem verificações CSRF. Incluí-lo:

  • Melhora a confiabilidade contra configurações mais restritas.
  • Torna o PoC "mais realista".
  • Permite reutilizar o script mesmo que um fluxo de login ou verificação de token seja aplicado.

wrap_payload() e encode_sql_string()

Estes auxiliares geram o payload real de injeção:

  • wrap_payload() envolve uma consulta bruta em UpdateXML(...) para forçar a saída baseada em erro.
  • encode_sql_string() converte strings em expressões CHAR(...) para evitar problemas de aspas.

Extração em partes (_dump_table())

Linhas são concatenadas com um separador e buscadas em substrings para evitar truncamento. Isso mantém a saída consistente mesmo quando os valores das linhas são longos.

Uso

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

Saída opcional de depuração:

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

Saída Esperada (preencher)

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!
      'LLLLLLLLLLLLLf     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 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

Créditos e Autor

  • Autor: ztrxwzy
  • Inspiração: Partes deste PoC são inspiradas pelo trabalho de Baptiste Contreras:
    https://github.com/BaptisteContreras/CVE-2017-8917-Joomla

Licença

Licença MIT Copyright (c) 2025 Jesús Caldera

A permissão é concedida, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrição, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e de permitir que pessoas às quais o Software é fornecido o façam, sujeitas às seguintes condições:

O aviso de copyright acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.

O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM NENHUM TIPO DE GARANTIA, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS AUTORES OU TITULARES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.

Baixar ferramenta