
Proof of Concept per CVE-2026-65761 - SQL Injection non autenticata in EasyStore Pro tramite `filter_sortby`
filter_sortbyQuesto repository fornisce una prova di concetto educativa per CVE-2026-65761, una vulnerabilità di SQL injection non autenticata che interessa le versioni da 1.0.0 a 2.0.2 (incluse) dell'estensione Joomla EasyStore. È interessata solo la versione Pro del plugin, poiché il parametro filter_sortby è soggetto a licenza.
La PoC (poc.py) dimostra l'iniezione SQL nel parametro di richiesta filter_sortby nel flusso di ricerca prodotti (option=com_easystore&view=products&task=search) tramite un controllo basato su errori.
Questo progetto e gli stack Docker sono destinati esclusivamente a test di sicurezza locali e a scopo educativo.
Non eseguire questo strumento contro sistemi che non possiedi o per cui non hai esplicitamente il permesso di testare.
Il percorso del codice vulnerabile si trova in una funzionalità . Per rendere il percorso del codice verificabile in un laboratorio locale riproducibile, questo repository applica una in modo che il percorso di ordinamento/filtro limitato alla versione Pro possa essere esercitato.
Questo non è fornito come tecnica di bypass delle licenze e non deve essere utilizzato per accedere a funzionalità a pagamento in distribuzioni reali. Il suo unico scopo è consentire la ricerca difensiva in ambito sicurezza e la validazione coordinata delle vulnerabilità in un ambiente di test locale isolato.
.
├── backup.sql.gz
├── poc.py
├── vulnerable/
│ ├── docker-compose.yaml
│ └── setup.sh
└── patched/
├── docker-compose.yaml
└── setup.sh
poc.py: PoC dell'exploit.vulnerable/docker-compose.yaml: stack di laboratorio vulnerabile su http://127.0.0.1:9999.patched/docker-compose.yaml: stack di laboratorio patchato su http://127.0.0.1:9999.backup.sql.gz: dump di bootstrap con un dataset minimale di negozio EasyStore richiesto da questa PoC (2 prodotti, 1 categoria, impostazioni base del negozio).vulnerable/setup.sh e patched/setup.sh: importano backup.sql.gz nel container MariaDB in esecuzione.pip install requests
Avvia l'ambiente vulnerabile:
docker compose -f vulnerable/docker-compose.yaml up -d
Quindi prepara i dati di test EasyStore richiesti:
cd vulnerable
./setup.sh
cd ..
Esegui la PoC:
python3 poc.py
Il risultato atteso per l'ambiente vulnerabile include:
[!] Target is vulnerable to CVE-2026-65761!
Ferma prima lo stack vulnerabile (se in esecuzione):
docker compose -f vulnerable/docker-compose.yaml down -v
Avvia l'ambiente patchato:
docker compose -f patched/docker-compose.yaml up -d
Quindi prepara gli stessi dati di test EasyStore richiesti:
cd patched
./setup.sh
cd ..
Esegui la stessa PoC:
python3 poc.py
Il risultato atteso per l'ambiente patchato è:
[-] Target is not vulnerable to CVE-2026-65761
In poc.py, l'URL di destinazione predefinito è http://localhost:9999.
Modificalo se esegui il laboratorio su un host o una porta diversi.