
applicazione demo che mostra un exploit di SQL Injection in django 5.2.7
Questa applicazione illustra la CVE-2025-64459 che colpisce diverse versioni di Django. Questa vulnerabilità è stata corretta nelle versioni più recenti di Django.
L'iniezione SQL avviene quando l'input fornito dall'utente viene trattato come parte di una query SQL, consentendo a un attaccante di modificare il funzionamento della query ed esporre o alterare dati a cui non dovrebbe avere accesso.
Questa è una vulnerabilità di iniezione SQL nei QuerySet e negli oggetti Q di Django che può causare l'esposizione dei dati. L'exploit è il risultato del passaggio di parametri di query a un QuerySet di Django, dove l'utente può impostare le chiavi _connector e _negated per eseguire frammenti SQL arbitrari.
In questa app, l'exploit viene eseguito sulla route dell'URL home. Visitando cve.hyperf.app/?_connector=OR 1=1 OR viene inserito OR 1=1 OR nella query SQL, il che significa che il filtro corrisponderà a ogni record e verranno restituiti tutti i risultati. In questo caso, vengono esposti i post che sono archiviati o impostati allo stato DRAFT.
[!NOTE]
db.sqlite3 e .env sono intenzionalmente tracciati da git per configurare il database per l'exploit.
clona il repository e sincronizza le dipendenze con uv.
uv sync
Avvia il server di sviluppo.
uv run manage.py runserver