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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
DB_Audit_Research — تدقيقات تُهزم ذاتيًا: مختبر قابل لإعادة الإنتاج يُظهر كيف يمكن لدور PostgreSQL منخفض الامتياز أن يُعمي مُدقّقًا قائمًا على المشغّلات بشكل قابل للعكس + تسميم الإسناد (PG14/16)، مع الدفاعات. بيانات اصطناعية؛ تم الاستشهاد ببدائيات CVE-2018-1058. | Kitploit
أدوات/GitHubGitHub/mthamil107/db_audit_research
أدوات دفاعيةالاستغلالالأوراق والأبحاثسوء التكوينأمن قواعد البياناتالهجوم العدائيمختبرات وتدريب عملي
GitHubmthamil107/db_audit_research

DB_Audit_Research

الأكثر شعبية

عرض الكل →

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

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

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

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

تدقيقات تُهزم ذاتيًا: مختبر قابل لإعادة الإنتاج يُظهر كيف يمكن لدور PostgreSQL منخفض الامتياز أن يُعمي مُدقّقًا قائمًا على المشغّلات بشكل قابل للعكس + تسميم الإسناد (PG14/16)، مع الدفاعات. بيانات اصطناعية؛ تم الاستشهاد ببدائيات CVE-2018-1058.

عرض المستودع
منذ 2 أياملم تتم المراجعة بعد

عمليات التدقيق المُهزومة ذاتيًا — مختبر قابل لإعادة الإنتاج

DOI  الترخيص: MIT (الكود) / CC BY 4.0 (الوثائق)

بحث في الأمن الدفاعي يختبر ما إذا كان دور قاعدة بيانات منخفض الامتياز، يعتمد على الحقن فقط يمكنه تعمية مدقّق يعتمد على المشغّلات بشكل عكسي وتسميم الإسناد على PostgreSQL القياسي — وأي الدفاعات توقفه فعلًا. كل شيء يعمل داخل حاويات Docker محلية وقابلة للتخلص مع بيانات اصطناعية بالكامل (عناوين IP توثيقية RFC 5737، هويات مخترعة). لا تُستخدم أي أنظمة أو بيانات اعتماد أو بيانات حقيقية.

انظر موجز المختبر في self-defeating-audits-lab.md.

ماذا يفعل

يبني الضحية "مشغّل التدقيق" المنسوخ على نطاق واسع من ويكي PostgreSQL، ثم يعمل عبر مصفوفة الجدوى خليةً خليةً على PostgreSQL 14 و16، ليقيس — خارج النطاق — ما إذا كان كل متجه هجوم يوقف فعلًا كتابةً ما عن أن تُدقَّق، وما إذا كان قابلاً للعكس دون أي أثر متبقٍّ، وأي الدفاعات تحيده.

تشغيله

root@kitploit:~
cd scripts
./00_up.sh 16          # bring up postgres:16-alpine on localhost:55432
./run_matrix.sh 16     # run every matrix cell + defenses -> ../results/RESULTS_pg16.md
docker rm -f sda_pg16  # free the port between versions
./00_up.sh 14
./run_matrix.sh 14     # -> ../results/RESULTS_pg14.md
./teardown.sh          # remove all lab containers

يتطلب Docker. يستخدم صور -alpine (محرك مطابق وظيفيًا).

عبر المحركات (عائلة MySQL وSQL Server)

أُعيدت الدراسة على عائلتين إضافيتين من المحركات. عائلة MySQL (MariaDB، نموذج مشغّل DEFINER) ضمن scripts/mysql/:

root@kitploit:~
cd scripts/mysql
./00_up.sh 10.11 && ./run_matrix_mysql.sh 10.11   # -> results/RESULTS_mariadb_10.11.md
docker rm -f sda_maria_10_11 && ./00_up.sh 10.6 && ./run_matrix_mysql.sh 10.6

SQL Server (نموذج سلسلة الملكية) ضمن scripts/mssql/ — يعمل على مثيل LocalDB محلي عبر sqlcmd المضيف (بدون Docker؛ المهاجم منخفض الامتياز مُنمذَج بانتحال EXECUTE AS USER):

root@kitploit:~
cd scripts/mssql
./run_matrix_mssql.sh        # -> results/RESULTS_mssql.md ; then ./teardown.sh

ملاحظة حول قابلية إعادة الإنتاج (SQL Server). بخلاف محركات Docker، يعتمد الجزء الثالث الخاص بـ SQL Server على المضيف: فهو يعمل على مثيل SQL Server LocalDB محلي عبر sqlcmd (المسار مثبّت في run_matrix_mssql.sh)، لذا فهو مخصص لنظام Windows فقط ولا يمكن تثبيته على بصمة صورة. المهاجم منخفض الامتياز مُنمذَج بانتحال EXECUTE AS USER (يدعم LocalDB مصادقة Windows فقط). نتائج سلوك المحرك (DISABLE دون أثر متبقٍّ؛ حارس DDL يفوته DISABLE) مستقلة عن نوع الجلسة وستنطبق على تسجيل دخول حقيقي؛ نتائج منح الكائنات تُفرض بأمانة عبر الانتحال. وهو الأقل قابلية للنقل بين المحركات الثلاثة — مُشار إليه بصراحة.

النتيجة الرئيسية عبر المحركات: فئة تظليل search_path (1A/1B) لا تنتقل إلى MySQL ولا SQL Server (لا يوجد search_path)، لكن استبدال المشغّل والالتفاف الخامل وتسميم الإسناد تنتقل. ربط امتيازات DEFINER في MySQL يجعل التعمية أكثر قابلية للاكتشاف؛ بينما SQL Server، مثل PostgreSQL، يتيح استعادة مطابقة بايتًا ببايت ويضيف أولية DISABLE TRIGGER دون أثر متبقٍّ يفوته دفاع DDL الخاص به. المقارنة الكاملة للمحركات الثلاثة في FINDINGS.md.

البنية

النتيجة الرئيسية

  • 1A زرع تظليل في مخطط جديد — يفشل عند الإعداد (لا يمكن لدور جديد تنفيذ CREATE SCHEMA)، ليس لأن "pg_catalog يفوز". الزرع في public القابل للكتابة مسبقًا يُحدث تظليلًا فعلًا: كلٌّ من 1S (نفس التوقيع، ترتيب المخططات) و1T (التحميل الزائد المطابق يغلب المدمج حتى عندما يكون pg_catalog أولًا — يعزل خصوصية النوع) يعمّي (بتفريغ الحمولة).
  • 1B تحميل زائد مطابق لـrow_to_json بنوع مركّب — يعمّي المدقّق عندما يكون public قابلاً للكتابة وsearch_path الخاص بالمشغّل غير مثبّت. قابل للوصول على PostgreSQL القياسي ≤14؛ مشروط بسوء الإعداد على 15+. تثبيت search_path يهزمه في كل مكان.
  • 1C استبدال دالة تدقيق مملوكة للتطبيق — يعمّي، وقابل للعكس مع فرق كائنات نظيف (إعادة تشغيل المصدر حرفيًا) — ومع ذلك ما زال كناري الكتابة-مقابل-التدقيق ومشغّل أحداث DDL يلتقطانه.
  • الخمول البوّاب عبر GUC وتسميم الإسناد داخل قاعدة البيانات يعملان كلاهما ضمن شروطهما المسبقة (سوء الإعداد)؛ صف التدقيق الملفَّق لا يمكن تمييزه من جدول التدقيق وحده.
  • التسجيل على مستوى المحرك (pgaudit/log_statement) + هما الدفاعان اللذان يُغلقان المجموعة.

موقف الإفصاح المسؤول

أُعيد إنتاج الدراسة على PostgreSQL قياسي في مختبر محلي ببيانات مجهولة/اصطناعية. نطاق SQL الهجومي مقصور على مخطط المختبر المبني هنا؛ هذه دراسة جدوى/دفاعات، وليست حمولة مُسلّحة. الأوليات الأساسية علنية أصلًا (CVE-2018-1058؛ تصعيد SECURITY DEFINER عبر search_path) — المساهمة هي التركيبة وتقييم الدفاعات. لم يُحدَّد أي نظام حقيقي.

تنزيل الأداة
المسارالوصف
scripts/00_up.shحاوية مؤقتة مثبتة على إصدار محدد (PostgreSQL)
scripts/mysql/ضحية عائلة MySQL (MariaDB)، والهجمات، والدفاعات، ومنسّق التشغيل
scripts/mssql/ضحية SQL Server (LocalDB)، والهجمات، والدفاعات، ومنسّق التشغيل
results/RESULTS_mariadb_*.mdمصفوفات جدوى عائلة MySQL + الدفاعات
results/RESULTS_mssql.mdمصفوفة جدوى SQL Server + الدفاعات
scripts/10_victim.sqlضحية التدقيق بنمط الويكي (مشغّل SECURITY DEFINER)؛ مقابض: pub_create, pin_path, app_owns
scripts/20_attacks.sqlكل متجهات الهجوم (1A/1B/1C، خمول GUC، تسميم الإسناد)، حارس \if واحد لكل خلية
scripts/30_defenses.sqlحارس مشغّل أحداث DDL + مصرف للإلحاق فقط بسلسلة تجزئة
scripts/40_snapshot.sqlلقطة كتالوج لفرق كائنات RQ2
scripts/run_matrix.shمنسّق التشغيل: يبني كل خلية، ويقيس، ويكتب results/RESULTS_pg<VER>.md
scripts/teardown.shإزالة الحاويات
results/RESULTS_pg14.md, results/RESULTS_pg16.mdمصفوفات الجدوى + الدفاعات معبأة لكل إصدار
results/_evidence_pg*.log, results/_snap_1C_*.txtأدلة أولية للأوامر/المخرجات
FINDINGS.mdحكم RQ1–RQ5 بلغة إنجليزية بسيطة، مصفوفة دفاع×هجوم، تحديد موقع الجدة، ملخص
مصرف بسلسلة تجزئة