
application de démonstration présentant un exploit de SQL Injection dans django 5.2.7
Cette application démontre la CVE-2025-64459 affectant plusieurs versions de Django. Cette vulnérabilité a été corrigée dans les versions plus récentes de Django.
L'injection SQL se produit lorsque des données fournies par l'utilisateur sont traitées comme faisant partie d'une requête SQL, permettant à un attaquant de modifier le fonctionnement de la requête et d'exposer ou de modifier des données auxquelles il ne devrait pas avoir accès.
Il s'agit d'une vulnérabilité d'injection SQL dans les QuerySets et objets Q de Django pouvant entraîner une exposition de données. L'exploitation résulte du passage de paramètres de requête à un QuerySet Django, où l'utilisateur peut définir les clés _connector et _negated pour exécuter des fragments SQL arbitraires.
Dans cette application, l'exploitation se fait sur la route URL de la page d'accueil. En visitant cve.hyperf.app/?_connector=OR 1=1 OR on insère OR 1=1 OR dans la requête SQL, ce qui signifie que le filtre correspondra à chaque enregistrement et que tous les résultats seront renvoyés. Dans ce cas, les articles archivés ou définis en statut BROUILLON sont exposés.
[!NOTE]
db.sqlite3 et .env sont intentionnellement suivis par git pour configurer la base de données pour l'exploitation.
Clonez le dépôt et synchronisez les dépendances avec uv.
uv sync
Lancez le serveur de développement.
uv run manage.py runserver